时间:2021-05-25
首先来分析一下轮播图效果的实现原理:
1、父元素作为显示窗口,大小固定超出部分隐藏,即设置overflow:hidden;
2、子元素存放图片列表用ul,ul固定定位,参照为父元素,即父元素position:relative;ul元素position:absolute;
3、一个li即一张图片的宽度为父元素的显示宽度
4、初始时,ul的left为0,这时第一张图片即第一个li显示
5、点击下一张按钮,将整个ul左移,使第二个li对齐父元素的左边框,此时ul的left为负的一个li的宽度
6、点击上一张按钮,将整个ul右移
7、对特殊情况进行处理,即第一张图时点上一张,最后一张图时点下一张
第一张图时点上一张,我们滚动到最后一张图,整个ul左移,即把left值改为负的n-1张图的宽度;
最后一张图时点下一张,我们滚到第一张图的位置,整个ul右移,即把left值改为0
用一张图来帮助理解:
修改ul元素的left值很简单ul.style.left=设定值,就可以了,但我们想有一个滑动的效果,那我们需要用setInterval来实现
最后的效果如下:
动图不能录制太大CSDN有2M的限制_(:зゝ∠)_
下面放代码
script部分
<script> window.onload= function () { var nav=document.getElementById("nav").getElementsByTagName("li"); var img=document.getElementById("imgList"); var prev=document.getElementById("prev"); var next=document.getElementById("next"); var index=0;//当前图片序列号 var timer;//定时器名字 var iSpeed=-10;//滚动的速度 function goRoll(){ timer=setInterval(function () { img.style.left=img.offsetLeft+iSpeed+'px'; var stop=-index*870+'px';//当达到目标位置是停止定时器 if(img.style.left==stop){ iSpeed=-10; clearInterval(timer); } },10) }// 上一张和下一张点击效果 prev.onclick= function () { if(index==0){ index=2; iSpeed=-20; }else{ index--; iSpeed=10; } goRoll(); //img.style.left=-index*870+'px'; }; next.onclick= function () { if(index==2){ index=0; iSpeed=20; }else{ index++; iSpeed=-10; } goRoll(); //img.style.left=-index*870+'px'; }; }</script>html放一下
CSS放一下
因为我写了一整个页面都放出来没啥用,所以我只截取了用到的部分。
现在还是有些问题的,比如如果点击过快是会出问题的,这个以后看看能不能完善。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
原生JS仿小米轮播图(最新版易懂),供大家参考,具体内容如下本次内容主要可实现的效果:自动轮播可点击上一张下一张进行图片的切换点击右下方小圆点进行图片切换代码部
废话不多说了,直接给大家贴js代码实现手写图片轮播的代码了,代码非常简单,具体代码如下所示:js图片轮播切换 .imgCon{width:400px;heig
本文实例为大家分享了js实现简单轮播图效果的具体代码,可以实现左右翻转,图片切换显示等效果,供大家参考,具体内容如下效果展示:代码展示:*{margin:0px
本文实例讲述了js支持键盘控制的左右切换立体式图片轮播效果。分享给大家供大家参考。具体如下:这是一款基于javascript实现支持键盘控制的左右切换立体式图片
本文在前一篇js焦点轮播效果的基础上,使用函数递归实现图片滑动切换,采用辅助图片实现图片无限滚动等技巧,具体内容如下假如前后不加一张图片的话,图片顺序为[1,2