js原生之焦点图转换加定时器实例

在jQuery之焦点图转换-左右的基础上,将jQuery代码改成js原生,并添加定时器(setInterval()和clearInterval())

<!doctype html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>焦点图转换--原生和定时器</title>

<link rel="stylesheet" href="css/reset.css">

<style type="text/css">

.pic-show{width: 480px;overflow: hidden;}

#pic{width: 1920px;height: 320px;position: relative;}

#pic img{display: block;float: left;}

.pic-show>img{display: block;cursor: pointer;opacity: 0.8; position: absolute;top: 142px;left: 30px;}

.pic-show>img:last-child{display: block; position: absolute;left: 414px; }

ul{width: 120px;height: 18px;position: absolute;top: 280px;left: 185px;}

li{float: left;width: 20px;height: 18px;margin-left: 5px;}

a{display: block;width: 20px;height: 18px;text-decoration: none;border: 1px solid #ccc;border-radius: 50%;background-color: #ccc;opacity: 0.6;}

a:hover{background-color: #094a99;}

.aCss{background-color: #094a99;}

p{width: 480px;text-align: center;}

</style>

</head>

<body>

<div class="pic-show">

<div id="pic">

<img src="images/1.jpg" alt="">

<img src="images/2.jpg" alt="">

<img src="images/3.jpg" alt="">

<img src="images/4.jpg" alt="">

</div>

<img id="prev" src="images/slider-prev.png" alt="">

<img id="next" src="images/slider-next.png" alt="">

</div>

<ul id="list">

<li><a href="#" title="日落"></a></li>

<li><a href="#" title="钢琴"></a></li>

<li><a href="#" title="大海"></a></li>

<li><a href="#" title="秋色"></a></li>

</ul>

<p id="p">这是一段测试文字</p>

<script src="js/jquery-3.0.0.js"></script>

<script type="text/javascript">

var num=0;

function G(id){

return document.getElementById(id)

}

var pic = G('pic')

var next = G('next')

var prev = G('prev')

var p = G('p')

var list = G('list')

var arr = G('list').getElementsByTagName('a')

       //点击next

next.onclick=function(){

if(num<3){

num=num+1;

}

else{

num=0;

}

console.log(num);

var mlNum=num * -480+'px';

pic.style.marginLeft=mlNum;

for(var j=0;j<arr.length;j++){

arr[j].style.backgroundColor='#ccc';

}

arr[num].style.backgroundColor="#094a99";

event.preventDefault();

var txt=arr[num].getAttribute("title");

console.log(txt);

p.textContent=txt;

}

    //点击prev

prev.onclick=function(){

if(num>0){

num=num-1;

}

else{

num=3;

}

console.log(num);

var mlNum2=num * -480+'px';

pic.style.marginLeft=mlNum2;

for(var j=0;j<arr.length;j++){

arr[j].style.backgroundColor='#ccc';

}

arr[num].style.backgroundColor="#094a99";

event.preventDefault();

var txt=arr[num].getAttribute("title");

console.log(txt);

p.textContent=txt;

}

for(var i=0;i<arr.length;i++){

arr[i].index=i;//创建索引值

arr[i].onclick=function(event){ num=this.index;

var mlNum3=num * -480+'px'; pic.style.marginLeft=mlNum3;

for(var j=0;j<arr.length;j++){

arr[j].style.backgroundColor='#ccc';

}

this.style.backgroundColor='#094a99';

event.preventDefault();

var txt=this.getAttribute("title");

p.textContent=txt;

}

}

    //函数封装

function lunbo(){

if(num<3){

num=num+1;

}

else{

num=0;

}

console.log(num);

var mlNum=num * -480+'px';

pic.style.marginLeft=mlNum;

for(var j=0;j<arr.length;j++){

arr[j].style.backgroundColor='#ccc';

}

arr[num].style.backgroundColor="#094a99";

event.preventDefault();

var txt=arr[num].getAttribute("title");

console.log(txt);

p.textContent=txt;

}

    //通过定时器调用封装好的函数

var stop=setInterval(lunbo,1500);

    //鼠标放上和离开时定时器的状态

pic.onmouseenter=function(){

clearInterval(stop)

}

pic.onmouseleave=function(){

stop=setInterval(lunbo,1500)

}

</script>

</body>

</html>

以上是 js原生之焦点图转换加定时器实例 的全部内容, 来源链接: utcz.com/z/340193.html

回到顶部