Js图片点击切换轮播实现代码
网络编程 2021-07-04 14:06www.168986.cn编程入门
这篇文章主要介绍了Js图片点击切换轮播实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
图片点击切换
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> window.onload=function(){ var btn1=document.getElementById("pre"); var btn2=document.getElementById("next"); var img=document.getElementById("img1"); var imgarr=["images/1.jpg","images/2.jpg","images/3.jpg","images/4.jpg","images/5.jpg","images/6.jpg"]; var index=0; var info=document.getElementById("pd"); info.innerHTML="一共"+imgarr.length+"张 图片 ,当前 第"+(index+1)+"张"; btn1.onclick=function(){ index--; if(index<0){ index=imgarr.length-1; } img.src=imgarr[index]; info.innerHTML="一共"+imgarr.length+"张 图片 ,当前 第"+(index+1)+"张"; }; btn2.onclick=function(){ index++; if(index>imgarr.length-1){ index=0; } img.src=imgarr[in000dex]; info.innerHTML="一共"+imgarr.length+"张 图片 ,当前 第"+(index+1)+"张"; }; }; </script> <style type="text/css"> { padding: 0; margin:0; } .outer{ width:640px; height:453px; margin:100px auto; text-align: center; } </style> </head> <body> <div class="outer"> <p id="pd"></p> <img src="images/1.jpg" id="img1" /> <button id="pre">上一张</button> <button id="next">下一张</button> </div> </body> </html>
实现效果
轮播
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> { padding:0px; margin: 0px; } #outer{ position: relative; width:660px; height:425px; margin:50px auto ; background:yellow; padding:10px 0; overflow: hidden; } #imglist{ position: absolute; list-style: none; / 设置偏移量 / left:0px; } #imglist li{ margin: 0 10px; float:left; } #navDiv{ position: absolute; bottom: 15px; / 设置left值 outer宽度 640 navDiv宽度 305=125 640-125=515 515/2=257.5 left:257.5px; / left:0; } #navDiv a{ float:left; width:20px; height:20px; background:#ff1; opacity: 0.5; /兼容IE8的透明/ filter:alpha(opacity=50); margin: 0 5px; } #navDiv a:hover{ background:red; } </style> <script type="text/javascript" src="tools.js"></script> <script type="text/javascript"> window.onload=function(){ var imglist=document.getElementById("imglist"); var navDiv=document.getElementById("navDiv"); var outer=document.getElementById("outer"); //获取页面所有的img标签 var imgarr=document.getElementsByTagName("img"); //获取页面所有的A标签 var allA=document.getElementsByTagName("a"); //默认显示图片的索引 var index=0; //设置 allA[index].style.background="black"; //设置ul的长度 imglist.style.width=660imgarr.length+"px"; //设置navDiv的left值 navDiv.style.left=(outer.offsetWidth-navDiv.offsetWidth)/2+"px"; //定义一个定时器标识 var timer; //点击超链接切换到指定的图片 //为所有的超链接绑定单击响应函数 for(var i=0;i<allA.length;i++){ //为每一个超链接都添加一个NUM属性 allA[i].num=i; //为超链接绑定单击响应函数 allA[i].onclick=function(){ //关闭自动切换 clearInterval(timer); //获取点击超链接的索引,并将其设置为index index=this.num; //切换图片 //imglist.style.left=index-660+"px"; setA(); move(imglist,20,-660index,"left",function(){ //动画执行完后,再执行自动切换 autoChange(); }); }; } //自动切换图片 autoChange(); //创建一个方法来设置选中的A function setA(){ //判断是不是一张照片 if(index>=imgarr.length-1){ index=0; //如果是一张,就把imglist移到0 imglist.style.left=0+"px"; } for(var j=0;j<allA.length;j++){ //去掉内联样式,只剩下样式表的样式 allA[j].style.background=""; } allA[index].style.background="black"; }; function autoChange(){ timer=setInterval(function(){ index++; index%=imgarr.length; move(imglist,20,-660index,"left",function(){ setA(); }); },3000); }; }; </script> </head> <body> <!--创建一个外部的div,来作为大的容器--> <div id="outer"> <!--创建一个ul,用来放置图片--> <ul id="imglist"> <li> <img src="images/1.jpg" /> </li> <li> <img src="images/2.jpg" /> </li> <li> <img src="images/3.jpg" /> </li> <li> <img src="images/4.jpg" /> </li> <li> <img src="images/5.jpg" /> </li> <li> <img src="images/1.jpg" /> </li> </ul> <div id="navDiv"> <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ></a> <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ></a> <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ></a> <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ></a> <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" rel="external nofollow" ></a> </div> </div> </body> </html>
tools.js
//动画函数 /参数 -1.obj 对象 -2.speed 速度 -3.target 执行动画的目标 -4.arrt 要变化的样式 -5.callback:回调函数 将会在动画执行完后执行 / function move(obj,speed,target,arrt,callback){ //关闭上一次定时器 clearTimeout(obj.timer); //判断速度的正负值 //如果从0向800移动则为正 //如果从800向0移动则为负 var current=parseInt(getStyle(obj,arrt)); if(current>target){ speed=-speed; } //开启一个定时器 //为obj添加一个timer属性,用来保存它1自己的定时器的标识 obj.timer=setInterval(function(){ //获取原来的left值 var oldvalue=parseInt(getStyle(obj,arrt)); //在旧值的基础上增加 var newvalue=oldvalue+speed; if(speed<0&&newvalue<target||speed>0&&newvalue>target) { newvalue=target; } obj.style[arrt]=newvalue+"px"; //当元素到达target关闭定时器 if(newvalue===target||newvalue===target){ clearTimeout(obj.timer); //动画执行完 执行函数 callback&&callback(); } },30); };
实现效果
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持狼蚁SEO。
编程语言
- 甘肃哪有关键词排名优化购买方式有哪些
- 甘肃SEO如何做网站优化
- 河南seo关键词优化怎么做电话营销
- 北京SEO优化如何做QQ群营销
- 来宾百度关键词排名:提升您网站曝光率的关键
- 卢龙关键词优化:提升您网站排名的策略与技巧
- 山东网站优化的注意事项有哪些
- 四川整站优化怎样提升在搜索引擎中的排名
- 疏附整站优化:提升网站性能与用户体验的全新
- 海南seo主要做什么工作售后服务要做到哪些
- 荣昌百度网站优化:提升您网站的搜索引擎排名
- 河北seo网站排名关键词优化如何做SEO
- 江西优化关键词排名推广售后保障一般有哪些
- 古浪SEO优化:提升你的网站可见性
- 西藏网站排名优化怎么把网站排名在百度首页
- 如何提升阳东百度快照排名:详尽指南