DDR爱好者之家 Design By 杰米
本文在前一篇js焦点轮播效果的基础上,使用函数递归实现图片滑动切换,采用辅助图片实现图片无限滚动等技巧,具体内容如下
假如前后不加一张图片的话,图片顺序为[1,2,3,4,5],当你点到第 5 张图时,再点“下一张”(就是要回到第 1 张图那里),这时候,你想象下那个画面,会一瞬间“刷刷刷”地闪过中间那几张图片才能到第 1 张图那里,这样,太难看了吧。
为了解决这个问题,所以要在第 5 张那里加多一张 1 图,图片顺序为 [1,2,3,4,5,1]。当你在第 5 张图点下一张时,图片滚动顺序是这样的:5 ----> (1) ----> 1,(注:中间的那个 1 是指后面多加的 1 图),一旦到了那个“多加的 1 图”,轮播就会瞬间回到 前面的 1 图那里。
因为都是“1 图”,所以视觉上不会有那个一次“刷刷刷”闪过好几张图片的效果。
效果如图:
实现代码:
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title></title> <style type="text/css"> *{ margin: 0; padding: 0; list-style: none; text-decoration: none; } .wrap{ width: 490px; height: 170px; margin: 100px auto; border: 1px solid #000000; position: relative; overflow: hidden; } #pic{ width: 3430px; position: absolute; } #pic li{ float: left; height: 170px; } #list{ position: absolute; bottom: 10px; left:150px ; } #list li{ float: left; width: 15px; height: 15px; background: #fff; margin: 0 10px; border-radius: 50%; cursor: pointer; } #list .on{ background: #e27a00; } .Prev{ top: 30px; left: 0; } .Next{ top: 30px; right: 0; } .Prev,.Next{ position: absolute; font-size: 80px; font-weight: bold; color:#fff ; -webkit-transition: all 0.35s ease-in-out } .Next:hover, .Prev:hover{ background: #ccc; background: rgba(204, 204, 204, 0.4); } </style> <script type="text/javascript"> window.onload=function(){ var wrap=document.getElementById('wrap'); var pic=document.getElementById('pic'); var Li=document.getElementById('list').getElementsByTagName('li'); var prev=document.getElementById('Prev'); var next=document.getElementById('Next'); var animated=false; var index=0; var timer=null; next.onclick=function(){ if(animated){//如果图片正在滚动时要返回,否则index会变化 return; } else{ index++; if(index>=Li.length){ index=0; } } showlist(); if(animated == false){//if(!animated) animate(-490); } } prev.onclick=function(){ if(animated){ return; } else{ index--; if(index<=0){ index=Li.length-1; } } showlist(); if(!animated){//判断其是否滚动完 animate(490); } } for(var i=0;i<Li.length;i++){ Li[i].num=i; Li[i].onclick=function(){ if(this.className=="on"){ return; } var offset = -490*(this.num-index); if(!animated){ animate(offset); } index=this.num; showlist(); } } //图片变换 function animate(offset){ animated=true; var newLeft=parseInt(pic.style.left) + offset; var time=300//位移总时间 var interval=10;//位移间隔时间 var speed=offset/(time/interval);//每次位移量 function go(){ if((speed < 0 && parseInt(pic.style.left) > newLeft )|| (speed > 0 && parseInt(pic.style.left) < newLeft)){ pic.style.left = parseInt(pic.style.left) + speed + 'px'; setTimeout(go,interval); }else{ animated=false; pic.style.left= newLeft + 'px'; if(newLeft > -490){ pic.style.left = -2450 + 'px'; } if(newLeft < -2450){ pic.style.left = -490 + 'px'; } } } go(); } //圆点变换 function showlist(){ for(var i=0;i<Li.length;i++){ Li[i].className=""; } Li[index].className="on"; } //自动播放 function play(){ timer=setInterval(function(){ next.onclick(); },2000); } function stop(){ clearInterval(timer); } wrap.onmouseover=stop; wrap.onmouseout=play; play(); } </script> </head> <body> <div class="wrap" id="wrap"> <ul id="pic" style="left: -490px;"> <li><a href="#"><img src="/UploadFiles/2021-04-02/54111d7d00018ba604900170.jpg">以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米
暂无评论...
更新日志
2024年11月27日
2024年11月27日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓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]