js实现图片轮播效果学习笔记


Posted in Javascript onJuly 26, 2017

本文实例为大家分享了js实现图片轮播效果的具体代码,供大家参考,具体内容如下

具体思路:

一、页面加载、获取整个容器、所有放数字索引的li及放图片列表的ul、定义放定时器的变量、存放当前索引的变量index

二、添加定时器,每隔2秒钟index递增一次、调用一次切换图片函数

提示:

1、 index不能一直无限制的递增下去,需做判断
2、调用切换图片函数时需将递增之后的index作为参数传过去

三、定义图片切换函数

提示:

  1.遍历所有放数字索引的li,将每个li上的类去掉。
  2.根据传递过来的index值找到对应的li给它添加类设为当前高亮显示。
  3. 根据传递过来的index值计算放图片的ul的top值
  4. 改变index的值,让其等于传递过来的参数值

注意:放图片的ul的top值=-index*单张图片的高度(所有图片必须等高)

四、鼠标划过整个容器时,图片停止切换,离开继续

提示:

1.  鼠标滑过整个容器时清除定时器
2.  鼠标离开时继续执行定时器,切换至下一张图片

五、遍历所有放数字的li,且给他们添加索引、鼠标滑过时切换至对应的图片。

鼠标滑过时调用图片切换函数,将滑过的li的索引传过去。

具体代码如下:

<!doctype html> 
<html lang="en"> 
<head> 
 <meta charset="UTF-8"> 
 <title>Document</title> 
 <style> 
 *{margin:0; 
 padding:0; 
 list-style:none;} 
 .wrap{height:170px; 
 width:490px; 
 margin:60px auto; 
 overflow: hidden; 
 position: relative; 
 margin:100px auto;} 
 .wrap ul{position:absolute;}  
 .wrap ul li{height:170px;} 
 .wrap ol{position:absolute; 
 right:5px; 
 bottom:10px;} 
 .wrap ol li{height:20px; width: 20px; 
 background:#ccc; 
 border:solid 1px #666; 
 margin-left:5px; 
 color:#000; 
 float:left; 
 line-height:center; 
 text-align:center; 
 cursor:pointer;} 
 .wrap ol .on{background:#E97305; 
 color:#fff;} 
  
 </style> 
 <script type="text/javascript"> 
 window.onload=function(){ 
 var wrap=document.getElementById('wrap'), 
 pic=document.getElementById('pic').getElementsByTagName("li"), 
 list=document.getElementById('list').getElementsByTagName('li'), 
 index=0, 
 timer=null; 
  
 // 定义并调用自动播放函数 
 timer = setInterval(autoPlay, 2000); 
  
 // 鼠标划过整个容器时停止自动播放 
 wrap.onmouseover = function () { 
 clearInterval(timer); 
 } 
  
 // 鼠标离开整个容器时继续播放至下一张 
 wrap.onmouseout = function () { 
 timer = setInterval(autoPlay, 2000); 
 } 
 // 遍历所有数字导航实现划过切换至对应的图片 
 for (var i = 0; i < list.length; i++) { 
 list[i].onmouseover = function () { 
 clearInterval(timer); 
 index = this.innerText - 1; 
 changePic(index); 
 }; 
 }; 
  
 function autoPlay () { 
 if (++index >= pic.length) index = 0; 
 changePic(index); 
 } 
  
 // 定义图片切换函数 
 function changePic (curIndex) { 
 for (var i = 0; i < pic.length; ++i) { 
 pic[i].style.display = "none"; 
 list[i].className = ""; 
 } 
 pic[curIndex].style.display = "block"; 
 list[curIndex].className = "on"; 
 } 
  
 }; 
  
 </script>  
</head> 
<body> 
 <div class="wrap" id='wrap'> 
 <ul id="pic"> 
 <li><img src="1.jpg" alt=""></li> 
 <li><img src="2.jpg" alt=""></li> 
 <li><img src="3.jpg" alt=""></li> 
 <li><img src="4.jpg" alt=""></li> 
 <li><img src="5.jpg" alt=""></li>  
 </ul> 
 <ol id="list"> 
 <li class="on">1</li> 
 <li>2</li> 
 <li>3</li> 
 <li>4</li> 
 <li>5</li> 
 </ol> 
 </div> 
</body> 
</html>

效果如下:

js实现图片轮播效果学习笔记

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js 模拟实现类似c#下的hashtable的简单功能代码
Jan 24 Javascript
Js冒泡事件详解及阻止示例
Mar 21 Javascript
js判断文本框剩余可输入字数的方法
Feb 04 Javascript
js中hash和ico的关联分析
Feb 05 Javascript
JavaScript中的toLocaleDateString()方法使用简介
Jun 12 Javascript
JavaScript对Cookie进行读写操作实例
Jul 25 Javascript
bootstrap模态框消失问题的解决方法
Dec 02 Javascript
javascript实现复选框全选或反选
Feb 04 Javascript
详解Angular Forms中自定义ngModel绑定值的方式
Dec 10 Javascript
JS+html5实现异步上传图片显示上传文件进度条功能示例
Nov 09 Javascript
vue中注册自定义的全局js方法
Nov 15 Javascript
微信小程序实现星级评价
Nov 20 Javascript
Angular4如何自定义首屏的加载动画详解
Jul 26 #Javascript
vue上传图片组件编写代码
Jul 26 #Javascript
深入讲解xhr(XMLHttpRequest)/jsonp请求之abort
Jul 26 #Javascript
基于ExtJs在页面上window再调用Window的事件处理方法
Jul 26 #Javascript
Angular中自定义Debounce Click指令防止重复点击
Jul 26 #Javascript
JavaScript利用fetch实现异步请求的方法实例
Jul 26 #Javascript
深入探究angular2 UI组件之primeNG用法
Jul 26 #Javascript
You might like
如何限制访问者的ip(PHPBB的代码)
2006/10/09 PHP
PHP访问Google Search API的方法
2015/03/05 PHP
8个PHP数组面试题
2015/06/23 PHP
yii分页组件用法实例分析
2015/12/28 PHP
详解php中空字符串和0之间的关系
2016/10/23 PHP
PHP实现的登录页面信息提示功能示例
2017/07/24 PHP
PHP实现压缩图片尺寸并转为jpg格式的方法示例
2018/05/10 PHP
php探针使用原理和技巧讲解
2019/09/17 PHP
复制js对象方法(详解)
2013/07/08 Javascript
jquery 操作css样式、位置、尺寸方法汇总
2014/11/28 Javascript
手机端页面rem宽度自适应脚本
2015/05/20 Javascript
vue2.0开发实践总结之入门篇
2016/12/06 Javascript
ajax实现动态下拉框示例
2017/01/10 Javascript
详解Angular 4.x NgTemplateOutlet
2017/05/24 Javascript
seajs实现强制刷新本地缓存的方法分析
2017/10/16 Javascript
Bootstrap导航菜单点击后无法自动添加active的处理方法
2018/08/10 Javascript
解决vue 绑定对象内点击事件失效问题
2018/09/05 Javascript
在layui tab控件中载入外部html页面的方法
2019/09/04 Javascript
jquery绑定事件 bind和on的用法与区别分析
2020/05/22 jQuery
python实现搜索指定目录下文件及文件内搜索指定关键词的方法
2015/06/28 Python
Python函数的周期性执行实现方法
2016/08/13 Python
新手常见6种的python报错及解决方法
2018/03/09 Python
通过Pandas读取大文件的实例
2018/06/07 Python
对python opencv 添加文字 cv2.putText 的各参数介绍
2018/12/05 Python
使用pyinstaller打包PyQt4程序遇到的问题及解决方法
2019/06/24 Python
python 通过邮件控制实现远程控制电脑操作
2020/03/16 Python
一文轻松掌握python语言命名规范规则
2020/06/18 Python
CSS3 Calc实现滚动条出现页面不跳动问题
2017/09/14 HTML / CSS
Moss Bros官网:英国排名第一的西装店
2020/02/26 全球购物
.net开发工程师面试题
2014/02/25 面试题
如何理解委托
2012/01/06 面试题
保护环境倡议书范文
2014/05/13 职场文书
低碳日宣传活动总结
2014/07/09 职场文书
如何利用python和DOS获取wifi密码
2021/03/31 Python
python异常中else的实例用法
2021/06/15 Python
使用vuex-persistedstate本地存储vuex
2022/04/29 Vue.js