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 页面 Mask实现代码
Jan 09 Javascript
JavaScript常用小技巧小结
Dec 29 Javascript
详解javascript传统方法实现异步校验
Jan 22 Javascript
JavaScript事件用法浅析
Oct 31 Javascript
jquery做个日期选择适用于手机端示例
Jan 10 Javascript
JavaScript严格模式详解
Jan 16 Javascript
从零开始学习Node.js系列教程四:多页面实现数学运算的client端和server端示例
Apr 13 Javascript
基于jQuery实现文字打印动态效果
Apr 21 jQuery
Angular4表单验证代码详解
Sep 03 Javascript
微信小程序富文本渲染引擎的详解
Sep 30 Javascript
layui下拉列表select实现可输入查找的方法
Sep 28 Javascript
JQuery Ajax如何实现注册检测用户名
Sep 25 jQuery
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
轻松入门: 煮好咖啡的七个诀窍
2021/03/03 冲泡冲煮
MySQL的FIND_IN_SET函数使用方法分享
2012/03/27 PHP
深入解析yii权限分级式访问控制的实现(非RBAC法)
2013/06/13 PHP
php实现转换ubb代码的方法
2015/06/18 PHP
详解no input file specified 三种解决方法
2019/11/29 PHP
document.all还是document.getElementsByName?
2006/07/21 Javascript
jQuery UI Dialog 创建友好的弹出对话框实现代码
2012/04/12 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/25 Javascript
jquery序列化方法实例分析
2015/06/10 Javascript
JavaScript模块规范之AMD规范和CMD规范
2015/10/27 Javascript
使用原生js写ajax实例(推荐)
2017/05/31 Javascript
Angularjs 双向绑定时字符串的转换成数字类型的问题
2017/06/12 Javascript
js动态引入的四种方法
2018/05/05 Javascript
微信小程序中悬浮窗功能的实现代码
2019/08/02 Javascript
jQuery实现图片随机切换、抽奖功能(实例代码)
2019/10/23 jQuery
vue项目引入ts步骤(小结)
2019/10/31 Javascript
vue如何使用async、await实现同步请求
2019/12/09 Javascript
JS面向对象编程实现的拖拽功能案例详解
2020/03/03 Javascript
python使用post提交数据到远程url的方法
2015/04/29 Python
Python 包含汉字的文件读写之每行末尾加上特定字符
2016/12/12 Python
Python实现将数据库一键导出为Excel表格的实例
2016/12/30 Python
对python中dict和json的区别详解
2018/12/18 Python
appium+python adb常用命令分享
2020/03/06 Python
SteelSeries赛睿官网:游戏外设和配件的领先制造商(耳机、键盘、鼠标和鼠标垫)
2018/06/17 全球购物
丝芙兰意大利官方网站:Sephora.it
2019/12/13 全球购物
结构工程个人自荐信范文
2013/11/30 职场文书
服装设计行业个人的自我评价
2013/12/20 职场文书
自动化专业职业生涯规划书范文
2014/01/16 职场文书
财务人员担保书
2014/05/13 职场文书
出差报告格式模板
2014/11/06 职场文书
2014小学语文教师个人工作总结
2014/12/03 职场文书
会计主管竞聘书
2015/09/15 职场文书
《西门豹》教学反思
2016/02/23 职场文书
python实现三阶魔方还原的示例代码
2021/04/28 Python
MySql 8.0及对应驱动包匹配的注意点说明
2021/06/23 MySQL
【海涛dota解说】海涛小满开黑4v5被破两路翻盘潮汐第一视角解说
2022/04/01 DOTA