原生js无缝滚动轮播图(html无缝滚动)

http://www.itjxue.com  2023-02-20 20:00  来源:未知  点击次数: 

怎么用js的原生写法写出来一个轮播图呢?

1:排出一个版,包含上下切换的标识和图片导航,所有图片隐藏,给图片第一张加一个class名,样式设为显示,图片导航的第一个加一个class名,加上背景色;

2:获取节点;

3:给向下切换写一个点击事件,点击图片切换到下一张,注意当图片切换到最后一张的时候会报错,所以必须要判断一下,当图片切换到最后一张的时候在,再次击会切换到第一张;

4:给向上切换写一个点击事件,注意当图片切换到第一张之后会报错,所以必须要判断一下,当图片切换到第一的时候,再次点击会切换到最后张,循环起来;

5:写一个定时器,定时器的播放顺序和向下切换一致,可以封装一个函数方便调用;

6:写鼠标划入事件,清除定时器;

7:写鼠标移出事件,定时器继续运行;

8:图片导航的点击事件

点击事件click

定时器setlnterval()

if判断

for()循环

js中无缝滚动轮播图有多少种做法?

还有就是用原生js模仿jQuery写一个动画函数,最简单版的就是:

var timer = null;

function ani(ele,target) {

clearInterval(ele.timer);

ele.timer = setInterval(function() {

var step = (target - ele.offsetLeft)/10;

step = step0?Math.ceil(step):Math.floor(step);

ele.style.left = ele.offsetLeft + step + "px";

console.log(1);

if (Math.abs(target - ele.offsetLeft) = Math.abs(step)) {

ele.style.left = target + "px";

clearInterval(ele.timer);

}

},30);

}

利用动画实现图片位置的移动,也是放一个图片到前面。

第二个就是还是放一张图到前面,然后把带图片的li定位;用一个arr[{left:0},{left:"200px"},{left:"400px"},{left:"600px"}];这样的数组把值分别赋给li;要滚动的时候把arr的最后一项放到最前面,再依次赋值给li,加上过渡就是轮播了,当然直接跳的那一下把过渡关了才是无缝轮播。

原型js的无缝轮播图包装怎么让他真的停下来

轮播图的原理是通过setInterval定时执行函数来控制图片轮播,停下来可以使用clearInterval清除定时器。

(责任编辑:IT教学网)

更多

相关PHP教程文章