轮播图技术实战 冷不防 2023-10-01 12:09 16阅读 0赞 -------------------- ### typora-root-url: assetis ### \[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-coJ8qZrI-1641605498062)(.\\image-20210325233927344.png)\] \[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JqbXdWaV-1641605498064)(.\\image-20210326095219815.png)\] <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>轮播图</title> <style> .box{ width: 520px; height: 280px; /* border: 4px solid rgba(186, 187, 194, 0.6); */ margin: 50px auto; position: relative; } .inner{ width: 520px; /* overflow-x: scroll; */ overflow-x: hidden; scroll-margin-left: 50px; } .con{ width: 2600px; height: 100%; overflow: hidden; } .con>img{ width: 520px; height: 280px; float: left; } /* 修改list的样式 */ .list{ overflow: hidden; list-style: none; position: absolute; bottom: 1px; left: 68px; } .list>li{ width: 30px; height: 8px; background-color: rgb(163,163,163); float: left; margin-left: 40px; } .list>li.active{ background-color: white; } </style> </head> <body> <div class="box"> <div class="inner"> <div class="con"> <img src="./image/0.jpg" alt=""> <img src="./image/1.jpg" alt=""> <img src="./image/2.jpg" alt=""> <img src="./image/3.jpg" alt=""> <img src="./image/4.jpg" alt=""> </div> <ul class="list"> <li></li> <li></li> <li></li> <li></li> <li></li> </ul> </div> </div> </body> <script> //获取照片元素 var imgs_ = document.getElementsByTagName('img'); var inner_ = document.getElementsByClassName('inner')[0]; var lis =document.getElementsByTagName('li'); //自动执行的时间 var timer = null; var timer2 = null;//执行每一步的间隔函数 var x = 0; //每张图片的下标 function autoMove(){ timer = setInterval(function(){ x++; //图片下标不能大于图片的个数 if(x>=imgs_.length){ x = 0; } //动起来 var step = 0;//初始化步数 var maxStep = 20; //最大20步走完 var start = inner_.scrollLeft;//起始位置 var end = imgs_[0].offsetWidth * x; //结束位置 var everyStep = (end - start) / maxStep; //执行每一步的步长 timer2 = setInterval(function(){ step++; if(step>=maxStep){ step = 0; clearInterval(timer2); } start += everyStep; inner_.scrollLeft = start; },15) for(var i =0;i<lis.length;i++){ lis[i].className=''; } lis[x].className = 'active'; lis[x].onclick = function(){ clearInterval(timer); } imgs_[x].onclick =function(){ clearInterval(timer); } imgs_[x].ondblclick = function(){ autoMove(); } },2000); } autoMove(); </script> </html> 封装后: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>轮播图</title> <style> .box { width: 520px; height: 280px; /* border: 4px solid rgba(186, 187, 194, 0.6); */ margin: 50px auto; position: relative; } .inner { width: 520px; /* overflow-x: scroll; */ overflow-x: hidden; scroll-margin-left: 50px; } .con { width: 2600px; height: 100%; overflow: hidden; } .con>img { width: 520px; height: 280px; float: left; } /* 修改list的样式 */ .list { overflow: hidden; list-style: none; position: absolute; bottom: 1px; left: 68px; } .list>li { width: 30px; height: 8px; background-color: rgb(163, 163, 163); float: left; margin-left: 40px; } .list>li.active { background-color: white; } </style> </head> <body> <div class="box"> <div class="inner"> <div class="con"> <img src="./image/0.jpg" alt=""> <img src="./image/1.jpg" alt=""> <img src="./image/2.jpg" alt=""> <img src="./image/3.jpg" alt=""> <img src="./image/4.jpg" alt=""> </div> <ul class="list"> <li></li> <li></li> <li></li> <li></li> <li></li> </ul> </div> </div> </body> <script> //获取照片元素 var imgs_ = document.getElementsByTagName('img'); var inner_ = document.getElementsByClassName('inner')[0]; var lis = document.getElementsByTagName('li'); //自动执行的时间 var timer = null; var timer2 = null;//执行每一步的间隔函数 var x = 0; //每张图片的下标 function autoMove() { timer = setInterval(function () { x++; //图片下标不能大于图片的个数 if (x >= imgs_.length) { x = 0; } //动起来 gogo(); //改变list的状态 change_list(); }, 2000); } function gogo() { var step = 0;//初始化步数 var maxStep = 20; //最大20步走完 var start = inner_.scrollLeft;//起始位置 var end = imgs_[0].offsetWidth * x; //结束位置 var everyStep = (end - start) / maxStep; //执行每一步的步长 timer2 = setInterval(function () { step++; if (step >= maxStep) { step = 0; clearInterval(timer2); } start += everyStep; inner_.scrollLeft = start; }, 15) } function change_list(){ for (var i = 0; i < lis.length; i++) { lis[i].className = ''; } lis[x].className = 'active'; lis[x].onclick = function () { clearInterval(timer); } imgs_[x].onclick = function () { clearInterval(timer); } imgs_[x].ondblclick = function () { autoMove(); } } autoMove(); </script> </html> clearInterval(timer); } imgs_[x].onclick = function () { clearInterval(timer); } imgs_[x].ondblclick = function () { autoMove(); } } autoMove(); \`\`\`
相关 轮播图技术实战 -------------------- typora-root-url: assetis \[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(im 冷不防/ 2023年10月01日 12:09/ 0 赞/ 17 阅读
相关 轮播图 ![这里写图片描述][SouthEast] > html页面 <!DOCTYPE html> <html> <head> 布满荆棘的人生/ 2022年06月05日 09:07/ 0 赞/ 369 阅读
相关 轮播图 <html> <head> <meta name="viewport" id="viewport" content="width=device- 布满荆棘的人生/ 2022年05月29日 03:47/ 0 赞/ 295 阅读
相关 轮播图 点击左右按钮,切换图片。图片的序号也随之变化。 逻辑思维:每次点击按钮时,只需要改变img的“src”属性就可以切换图片。将图片的"src"放在数组中,就可以知道每一张图的位 落日映苍穹つ/ 2022年05月27日 08:16/ 0 赞/ 339 阅读
相关 轮播图 废话不多说,直接上代码 <!DOCTYPE html> <html> <head lang="en"> <meta charset=" 淩亂°似流年/ 2022年05月23日 09:38/ 0 赞/ 340 阅读
相关 轮播图 方法1 不太完善 html+js代码如下 <!DOCTYPE html> <html lang="en"> <head> 我不是女神ヾ/ 2022年05月13日 08:20/ 0 赞/ 333 阅读
相关 轮播图 本文转载至菜鸟教程,仅做笔记之用,方便自己学习 [菜鸟链接][Link 1] <!DOCTYPE html> <html> <head> 秒速五厘米/ 2021年12月10日 05:57/ 0 赞/ 529 阅读
相关 轮播图 setInterval setInterval() 方法可按照指定的周期(以毫秒计)来调用函数或计算表达式。 给需要轮播的图片在js里声明一个变量 以数组的类型 在H 男娘i/ 2021年11月17日 06:32/ 0 赞/ 459 阅读
相关 轮播图 方案1 初始化插件: slides是一款基于jQuery无缝轮播图插件,支持图内元素动画,可以自定义动画类型 html代码 <div class="fullS 末蓝、/ 2021年06月10日 20:38/ 0 赞/ 677 阅读
还没有评论,来说两句吧...