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 相关文章推荐
JQuery 常用方法基础教程
Feb 06 Javascript
5秒后跳转到另一个页面的js代码
Oct 12 Javascript
jQuery 过滤方法filter()选择具有特殊属性的元素
Jun 15 Javascript
jquery获取file表单选择文件的路径、名字、大小、类型
Jan 18 jQuery
JavaScript常用工具方法封装
Feb 12 Javascript
深入解析vue 源码目录及构建过程分析
Apr 24 Javascript
简单学习5种处理Vue.js异常的方法
Jun 17 Javascript
Jquery属性的获取/设置及样式添加/删除操作技巧分析
Dec 23 jQuery
js实现可爱的气泡特效
Sep 05 Javascript
js实现特别简单的钟表效果
Sep 14 Javascript
如何构建一个Vue插件并生成npm包
Oct 26 Javascript
vue中三级导航的菜单权限控制
Mar 31 Vue.js
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
PHP fopen()和 file_get_contents()应用与差异介绍
2014/03/19 PHP
php+mysqli实现批量替换数据库表前缀的方法
2014/12/29 PHP
php页面缓存方法小结
2015/01/10 PHP
[原创]php使用curl判断网页404(不存在)的方法
2016/06/23 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
子窗口、父窗口和Silverlight之间的相互调用
2010/08/16 Javascript
Pro JavaScript Techniques学习笔记
2010/12/28 Javascript
基于jquery的放大镜效果
2012/05/30 Javascript
js 数组去重的四种实用方法
2014/09/09 Javascript
最新最热最实用的15个jQuery插件汇总
2015/07/05 Javascript
浅谈JS原型对象和原型链
2016/03/02 Javascript
jQuery中$.each()函数的用法引申实例
2016/05/12 Javascript
JavaScript获取服务器时间的方法详解
2016/12/11 Javascript
JS中闭包的经典用法小结(2则示例)
2016/12/28 Javascript
Textarea输入字数限制实例(兼容iOS&amp;安卓)
2017/07/06 Javascript
Vue事件修饰符native、self示例详解
2019/07/09 Javascript
layui 地区三级联动 form select 渲染的实例
2019/09/27 Javascript
JS实现分页导航效果
2020/02/19 Javascript
python通过pil模块将raw图片转换成png图片的方法
2015/03/16 Python
提升Python程序运行效率的6个方法
2015/03/31 Python
Python修改文件往指定行插入内容的实例
2019/01/30 Python
利用Python检测URL状态
2019/07/31 Python
python 双循环遍历list 变量判断代码
2020/05/04 Python
Python HTMLTestRunner库安装过程解析
2020/05/25 Python
Python3开发环境搭建详细教程
2020/06/18 Python
浅析Python 简单工厂模式和工厂方法模式的优缺点
2020/07/13 Python
世界上最全面的汽车零部件和配件集合:JC Whitney
2016/09/04 全球购物
美国一家全面的在线零售鞋类公司:SHOEBACCA
2017/01/06 全球购物
新西兰购物网站:TheMarket NZ
2020/09/19 全球购物
物流经理自我评价
2013/09/23 职场文书
土木工程应届生自荐信
2013/09/24 职场文书
绩效工资分配方案
2014/01/18 职场文书
优秀教师先进材料
2014/12/16 职场文书
秋菊打官司观后感
2015/06/03 职场文书
结婚纪念日感言
2015/08/01 职场文书
js Proxy的原理详解
2021/05/25 Javascript