2025年4月26日 星期六 乙巳(蛇)年 正月廿七 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > JavaScript

JS定时器实现图片轮播

时间:03-07来源:作者:点击数:72

在本节教程中,我们将使用定时器修改“JS为元素添加自定义属性”一节中的例 4,以实现图片的轮播(自动切换)。具体代码请见示例 1。

【例 1】使用定时器实现图片轮播。

  • <!doctype html>
  • <html>
  • <head>
  • <meta charset="utf-8">
  • <title>使用定时器实现图片轮播</title>
  • <style>
  • ul{margin:0;padding:0;}
  • li{display:inline-block;}
  • body{background:#333;}
  • #pic{width:300px;height:206px; margin:0 auto;}
  • #pic img{width:300px;height:206px;}
  • #pic ul{margin-top:10px;text-align:center;}
  • #pic .item,#pic .active{width:9px;height:9px;cursor: pointer;
  • border-radius:10px;margin:1px 1px 1px 8px;}
  • #pic .item {background:#FFF;}
  • #pic .active {background: #F60;}
  • </style>
  • <script>
  • window.onload = function(){
  • var oDiv = document.getElementById('pic');
  • var oImg = oDiv.getElementsByTagName('img')[0];
  • var oUl = oDiv.getElementsByTagName('ul')[0];
  • var arrUrl = ['images/p1.jpg','images/p2.jpg','images/p3.jpg','images/p4.jpg'];
  • var aLi = oDiv.getElementsByTagName('li');
  • var num = 0;
  • var timer = null;//定时器
  • //生成对应图片个数的列表项
  • for(var i = 0; i < arrUrl.length; i++){
  • oUl.innerHTML += "<li class = 'item'></li>";
  • }
  • //初始化
  • function fnTab(){
  • oImg.src = arrUrl[num];
  • for(var i = 0; i < aLi.length; i++){
  • aLi[i].className = 'item';//首先全部清空活动状态
  • }
  • aLi[num].className = 'item active';//然后设置当前li为活动状态
  • }
  • fnTab();//调用函数实现初始化设置
  • for(var j = 0; j < aLi.length; j++){
  • aLi[j].index = j;//为每个列表项自定义索引属性,属性值和数组下标一一对应
  • aLi[j].onclick = function(){
  • num = this.index;//将当前li的索引属性值赋给变量num
  • fnTab();
  • };
  • }
  • function autoPlay(){//使用定时器实现每隔2秒自动切换图片
  • timer = setInterval(function(){
  • num++;
  • num %= arrUrl.length;
  • fnTab();
  • },2000);
  • }
  • autoPlay();//调用自动切换图片函数
  • oImg.onmouseover = function(){//光标移到图片上停止图片切换
  • clearInterval(timer);
  • }
  • oImg.onmouseout = autoPlay;//光标移开图片后继续自动切换图片
  • };
  • </script>
  • </head>
  • <body>
  • <div id="pic">
  • <img src=""/>
  • <ul>
  • </ul>
  • </div>
  • </body>
  • </html>

上述代码是在“JS为元素添加自定义属性”一节中的例 4 的基础上进行了一些修改,修改内容主要包括添加定时器、光标移入和移开事件处理以及变量 num 的使用。这些修改内容实现了图片的自动切换、光标移入时停止图片切换以及光标移开时继续自动切换图片功能。

对这些功能的实现,变量 num 在其中起到了关键作用:通过 num%=arrUrl.length 代码,实现了图片自动切换时的轮播;另外,在单击列表事件中通过 num=this.index 代码,则可以实现单击任意圆点后,都可以从该圆点所对应的图片开始继续切换。

方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门