在同学的帮助下,终于使用纯js代码实现了动态轮播,学无止境加油吧!
效果图是这样的,我们需要定义一个div,并放入三张图片,还需要左右两个按钮,以及底下三个按钮三个div。
先看布局代码
<div class="banner" id="banner"> <ul class="clear" > <li style="left:0" ><img src="/UploadFiles/2021-04-02/k1.jpg">如何是css部分
.clear:after{ display:block; content:""; clear:both; } .banner{ width: 100%; position:relative; height: 390px; } .banner ul{ width: 100%; height: 390px; list-style-type:none; overflow: hidden; } .banner ul li{ width: 100%; position: absolute; } .pageNav{ position: absolute; left:50%; bottom:20px; transform: translateX(-50%); } .pageNav a{ display:inline-block; margin:0 5px; width: 20px; height: 20px; background-color:#fff; border-radius:50%; border:2px solid #000; cursor:pointer; } .pageNav a.cur{ background-color:red; } .leftBtn, .rightBtn{ position:absolute; top: 50%; transform:translateY(-50%); width: 40px; height: 50px; background-color:rgba(0, 0, 0, 0.5); cursor:pointer; } .leftBtn{ left:0; } .rightBtn{ right:0; } .leftBtn:hover,.rightBtn:hover{ background-color:rgba(0, 0, 0, 0.8); }接下来是js部分
var banner=document.getElementById("banner"); var ul=banner.getElementsByTagName("ul")[0]; var li=ul.getElementsByTagName("li"); var pageNav=banner.getElementsByClassName("pageNav")[0],leftBtn=document.getElementsByClassName("leftBtn")[0],rightBtn=document.getElementsByClassName("rightBtn")[0],n=0,index=0,timerElem=null,state=false; for(var i=0;i<li.length;i++){//给图片底下添加按钮 pageA=document.createElement("a"); if(i==0){ pageA.className="cur"; } pageNav.appendChild(pageA); } pageNav.addEventListener('click',pageNavClick,false); function pageNavClick(e){ if(state){ return; } e=e||window.event;//兼容性考虑 for(var i=0;i<li.length;i++){ if(pageNav.children[i]==e.target){ index=n; var offset=i-n; n=i; showBtn(n); if(offset>0){ showImg(-100); }else{ showImg(100); } } } } function showBtn(index){ for(var z=0;z<li.length;z++){ pageNav.children[z].className=""; } pageNav.children[index].className="cur"; } function showImg(offset){ clearInterval(timerElem); var speed=offset/20; timerElem=setInterval(function(){ state=true; if(parseInt(li[n].style.left)==0){ state=false; clearInterval(timerElem); li[n].style.left="0"; for(var l=0;l<n;l++){ li[l].style.left="-100%" } for(var r=n+1;r<li.length;r++){ li[r].style.left="100%"; } }else{ li[n].style.left=parseInt(li[n].style.left)+speed+"%"; li[index].style.left=parseInt(li[index].style.left)+speed+"%"; } },100) } leftBtn.onclick=function(){ if(state){ return; } index=n; n--; if(n<0){ n=li.length-1; li[n].style.left="-100%"; } showBtn(n); showImg(100); } rightBtn.onclick=function(){ if(state){ return; } index=n; n++; if(n>li.length- 1){ n=0; li[n].style.left="100%"; } showBtn(n); showImg(-100); } var timer; timer=setInterval(autoLunbo,3000); function autoLunbo(){ rightBtn.onclick(); } banner.onmouseover=function(){ clearInterval(timer); } banner.onmouseout=function(){ timer=setInterval(autoLunbo,3000); }以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“JS实现动态无缝轮播”评论...
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新动态
2024年11月28日
2024年11月28日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]