js 的banner特效

JavaScript015

js 的banner特效,第1张

<html>

<head>

<meta http-equiv="Content-Type" content="text/htmlcharset=utf-8">

<title>slider幻灯片 - 纯JS简化版</title>

<style type="text/css">

*{margin: 0padding: 0}

#sliderbox { width: 500height:313pxposition: relativeoverflow: hiddenmargin: 20px}

#slider {list-style: nonemargin: 0padding: 0}

#slider li {float:leftmargin: 0padding: 0}

#slidertab {position: absoluteright: 10pxbottom:10pxwidth: 80pxheight: 20pxlist-style: none}

#slidertab li {float: leftwidth: 20pxheight: 20pxmargin: 2pxbackground: #eeetext-align: centerline-height: 20pxfont-size: 12px}

#slidertab li.sliderclass {background: #f00}

</style>

<script type="text/javascript">

window.onload = function() {

var sliderbox = document.getElementById('sliderbox')

var slider = document.getElementById('slider')

var sliderli = slider.getElementsByTagName('li')

var slidertab = document.getElementById('slidertab')

var slidertabli = slidertab.getElementsByTagName('li')

var inow = 0

sliderbox.onmouseover = function() {

clearInterval(timer)

}

sliderbox.onmouseout =function() {

timer = setInterval(autoplay, 1000)

}

for(var i=0i<slidertabli.lengthi++) {

slidertabli[i].index = i

slidertabli[i].onclick = function() {

clearInterval(timer)

for(var a=0a<slidertabli.lengtha++) {

slidertabli[a].className = ""

sliderli[a].style.display = "none"

}

this.className = "sliderclass"

sliderli[this.index].style.display = "block"

inow = this.index

}

}

function autoplay() {

for(var i=0i<sliderli.lengthi++) {

sliderli[i].style.display = 'none'

slidertabli[i].className = ""

}

sliderli[inow].style.display = 'block'

slidertabli[inow].className = "sliderclass"

inow = inow==sliderli.length-1 ? 0 : inow+1

}

timer = setInterval(autoplay, 5000)

}

</script>

</head>

<body>

<div id="sliderbox">

<ul id="slider">

<li><img src="tab1.jpg" /></li>

<li><img src="tab2.jpg" /></li>

<li><img src="tab3.jpg" /></li>

</ul>

<ul id="slidertab">

<li>1</li>

<li>2</li>

<li>3</li>

</ul>

</div>

</body>

</html>

注解:ele要全屏的元素

退出全屏直接使用document调用exitFullscreen方法即可。

document.fullscreenElement():获取当前全屏的元素。

注意:

1.document下没有requestFullscreen

2.requestFullscreen方法只能由用户触发,比如:在onload事件中不能触发

3.页面跳转需先退出全屏

4.进入全屏的元素,将脱离其父元素,所以可能导致某些css失效

解决方案:使用 :full-screen伪类 为元素添加全屏时的样式(使用时为了兼容注意添加-webkit、-moz或-ms前缀)

5.一个元素全屏后,其子元素要再全屏,需先让该元素退出全屏

触摸事件例子

ontouchstart

ontouchmove

ontouchend

ontouchcancel目前移动端浏览器均支持这4个触摸事件,包括IE。由于触屏也支持MouseEvent,因此他们的顺序是需要注意的:touchstart → mouseover → mousemove → mousedown → mouseup → click1

/**

* onTouchEvent

*/

var div = document.getElementById("div")

//touchstart类似mousedown

div.ontouchstart = function(e){

//事件的touches属性是一个数组,其中一个元素代表同一时刻的一个触控点,从而可以通过touches获取多点触控的每个触控点

//由于我们只有一点触控,所以直接指向[0]

var touch = e.touches[0]

//获取当前触控点的坐标,等同于MouseEvent事件的clientX/clientY

var x = touch.clientX

var y = touch.clientY

}

//touchmove类似mousemove

div.ontouchmove = function(e){

//可为touchstart、touchmove事件加上preventDefault从而阻止触摸时浏览器的缩放、滚动条滚动等

e.preventDefault()

}

//touchend类似mouseup

div.ontouchup = function(e){

//nothing to do

}