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 相关文章推荐
document.documentElement &amp;&amp; document.documentElement.scrollTop
Dec 01 Javascript
javascript时区函数介绍
Sep 14 Javascript
JavaScript中instanceof运算符的用法总结
Nov 19 Javascript
jQuery中innerWidth()方法用法实例
Jan 19 Javascript
详解webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)
Jun 20 Javascript
js和jQuery以及easyui实现对下拉框的指定赋值方法
Jan 23 jQuery
解决vue打包项目后刷新404的问题
Mar 06 Javascript
浅谈Redux中间件的实践
Jul 27 Javascript
详解vue-cli3开发Chrome插件实践
May 29 Javascript
微信小程序开发常见问题及解决方案
Jul 11 Javascript
vue悬浮可拖拽悬浮按钮的实例代码
Aug 20 Javascript
vue el-upload上传文件的示例代码
Dec 21 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实现MD5加密16位(不要默认的32位)
2013/08/12 PHP
php初始化对象和析构函数的简单实例
2014/03/11 PHP
php实例分享之通过递归实现删除目录下的所有文件详解
2014/05/15 PHP
php实现两个数组相加的方法
2015/02/17 PHP
一个简单的实现下拉框多选的插件可移植性比较好
2014/05/05 Javascript
基于jQuery实现鼠标点击导航菜单水波动画效果附源码下载
2016/01/06 Javascript
jquery遍历table的tr获取td的值实现方法
2016/05/19 Javascript
JavaScript实现垂直滚动条效果
2017/01/18 Javascript
JS设置CSS样式的方式汇总
2017/01/21 Javascript
原生Aajax 和jQuery Ajax 写法个人总结
2017/03/24 jQuery
js获取css的各种样式并且设置他们的方法
2017/08/22 Javascript
微信小程序非跳转式组件授权登录的方法示例
2019/05/22 Javascript
Vue+Vuex实现自动登录的知识点详解
2020/03/04 Javascript
微信小程序抽奖组件的使用步骤
2021/01/11 Javascript
[01:31](回顾)杀出重围,决战TI之巅
2014/07/01 DOTA
[36:14]DOTA2上海特级锦标赛D组小组赛#1 EG VS COL第二局
2016/02/28 DOTA
[50:11]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第三场
2018/04/09 DOTA
Python 用Redis简单实现分布式爬虫的方法
2017/11/23 Python
windows 下python+numpy安装实用教程
2017/12/23 Python
Python处理命令行参数模块optpars用法实例分析
2018/05/31 Python
python列表list保留顺序去重的实例
2018/12/14 Python
搞定这套Python爬虫面试题(面试会so easy)
2019/04/03 Python
基于python实现模拟数据结构模型
2020/06/12 Python
python db类用法说明
2020/07/07 Python
HTML5边玩边学(1)画布实现方法
2010/09/21 HTML / CSS
美国领先的户外服装与装备用品店:Moosejaw
2016/08/25 全球购物
植村秀加拿大官网:Shu Uemura加拿大
2019/09/03 全球购物
英国现代、当代和设计师家具店:Furntastic
2020/07/18 全球购物
Java面试题汇总
2015/12/06 面试题
农村文化建设标语
2014/10/07 职场文书
个人作风建设剖析材料
2014/10/11 职场文书
2015年护士节慰问信
2015/03/23 职场文书
检讨书格式
2015/05/07 职场文书
人口与计划生育责任书
2015/05/09 职场文书
详解PHP设计模式之依赖注入模式
2021/05/25 PHP
JS中如何优雅的使用async await详解
2021/10/05 Javascript