纯原生javascript实现图片轮播切换效果代码。
来源:互联网 发布:手机淘宝客户端在哪里 编辑:程序博客网 时间:2024/06/10 00:13
效果如下:
代码部分:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> *{margin:0;padding:0;} #banner{position:relative;width:400px;height:200px;margin:50px auto;overflow: hidden;} #banner .box{width:400px;height:200px;overflow: hidden;} #banner .box li img{width:400px;height:200px;overflow: hidden;} #banner .box li{display:none;} #banner .box li.active{display:block;} #banner .static{position:absolute;bottom:0;height:30px;width:390px;padding-right:10px;text-align:right;} #banner .static span{display:inline-block;width:20px;height:20px;margin:0 2px;line-height:20px;text-align:center;background:#fff;cursor:default;} #banner .static span.active{background:blue;color:#fff;} #banner .btn{position:absolute;top:80px;height:40px;width:20px;color:#fff;line-height:40px;text-align:center;background:#000;opacity:.75;cursor:default;} #banner .next.btn{right:0;}</style></head><body> <div id="banner"> <div class="box"> <ul> <li class="active"> <a href="#"> <img src="img/banner.jpg"/> </a> </li> <li> <a href="#"> <img src="img/banner01.jpg"/> </a> </li> <li class=""> <a href="#"> <img src="img/banner02.jpg"/> </a> </li> <li> <a href="#"> <img src="img/banner03.jpg"/> </a> </li> </ul> </div> <div class="static"> <span class="active">1</span> <span>2</span> <span>3</span> <span>4</span> </div> <div class="prev btn"><</div> <div class="next btn">></div> </div> <script> //切换样式 function toggleClass(elem, classStr){ if(elem.className){ if(elem.className.indexOf(classStr) > -1){ elem.className = elem.className.replace(classStr,""); }else{ elem.className = elem.className + " " + classStr; } }else{ elem.className = classStr; } } //获取元素所在兄弟元素的索引 function getIndex(elem){ var index; var childNodes = elem.parentNode.childNodes; //获取子元素的元素节点 function childElem(){ var result = []; for(var i = 0, len = childNodes.length; i < len; i++){ if(childNodes[i].nodeType == 1){ result.push(childNodes[i]); } } return result; } //判断元素与子元素是否相等 var child = childElem(elem); for(var j = 0, lenj = child.length; j < len; j++){ if(child[j] == elem){ index = j; }else{ console.error("没有找到相应的子元素!"); } } //返回索引 return index; } //dom选择器 function $(selector){ return document.querySelector(selector); } function $$(selector){ return document.querySelectorAll(selector); } //对象参数 var int = { num: null, speed: null, timerId: null }; var liItem = $$("#banner .box li"); var static = $$("#banner .static span"); var btn = $$("#banner .btn"); //初始化默认值 var activeNum = 1; int.num = liItem.length; int.speed = 3000; //切换动作 function toggleItem(num){ toggleClass($("#banner .box li.active"), "active"); toggleClass($("#banner .static span.active"), "active"); //添加下一个激活选项 toggleClass(liItem.item(num), "active"); toggleClass(static.item(num), "active"); } function autoPlay(){ int.timerId = setInterval(function(){ if(activeNum < int.num){ toggleItem(activeNum); activeNum++; }else{ activeNum = 0; toggleItem(activeNum); activeNum++; } },int.speed); } //定时轮播 autoPlay(); //状态点鼠标移入移出效果 for(var i = 0, len = static.length; i < len; i++){ //匿名传参避免产生闭包得不到想要的效果 (function(j){ //鼠标移入效果 static.item(j).onmouseenter = function(){ //停止动画 clearInterval(int.timerId); var index = getIndex(this); toggleItem(index); } //鼠标移出效果 static.item(j).onmouseleave = function(){ //开始动画 autoPlay(); } })(i); } for(var k = 0, lenk = btn.length; k < lenk; k++){ //上下张按钮移入移出效果 btn.item(k).onmouseenter = function(){ clearInterval(int.timerId); } btn.item(k).onmouseleave = function(){ autoPlay(); } } //单价击上一张 $(".prev.btn").onclick = function(){ if(activeNum > 0){ activeNum--; toggleItem(activeNum); }else{ activeNum = 3; toggleItem(activeNum); } } //单击下一张 $(".next.btn").onclick = function(){ if(activeNum < int.num){ toggleItem(activeNum); activeNum++; }else{ activeNum = 0; toggleItem(activeNum); activeNum++; } } </script></body></html>
阅读全文
0 0
- 纯原生javascript实现图片轮播切换效果代码。
- 原生javascript实现图片轮播效果
- JS原生实现图片轮播切换效果
- 原生javascript实现图片轮播效果——续
- 使用原生javascript和css实现图片轮播效果
- +【CSS3】使用纯css代码实现图片轮播效果
- 原生javascript图片轮播实现
- 原生javascript实现图片自动轮播和点击轮播代码
- JS图片轮播切换效果实现
- 原生js+css3实现图片自动切换,图片轮播
- JS原生代码实现图片轮播无缝切换的一种思路
- 纯原生JS轮播图片
- 原生JavaScript实现图片切换
- 图片轮播原生实现
- 原生javascript简单轮播效果demo
- 纯js制作图片轮播效果
- 原生javascript实现选项卡切换效果
- Javascript图片轮播效果
- 2017.8.19~8.20 noip 模拟 day2
- 轻松学JVM(四)——垃圾回收算法
- 少妇、儿子和螃蟹
- IOS-收藏经典文章
- angularjs-指令-防止重复提交,第一次点击提交后必须相隔几秒后才能点击
- 纯原生javascript实现图片轮播切换效果代码。
- 战将
- 这次的主题是SVM,大体还可以,对偶那里日后补充
- Evaluate Reverse Polish Notation
- HTML5去除input [type=search] 的默认边框和删除按钮
- java精确小数位数的几种方法
- 【算法小总结】广度优先搜索剖析
- linux安装curl
- 向集合中一次性添加一组元素的方法