JS实现左右无缝轮播图完整代码示例
本文提供了一段JavaScript实现的左右无缝轮播图完整代码。通过控制上一页和下一页按钮的可见性解决点击bug,并包含HTML、CSS及JS逻辑。读者可直接替换图片使用,或借助在线工具测试运行效果,适合需要快速实现轮播功能的前端开发者参考。
JS左右无缝轮播功能概述
本文详细介绍了一种基于JavaScript实现的左右无缝轮播功能,旨在为开发者提供可直接参考和使用的解决方案。
在实现过程中,针对上一页和下一页按钮设置了visibility属性,主要目的是解决轮播过程中点击按钮可能引发的逻辑错误。由于此处使用的是a标签,因此采用visibility属性进行控制;若使用的是button标签,则可直接在轮播执行期间禁用按钮点击,具体实现可根据实际场景灵活调整。
无缝轮播代码实现
以下是完整的代码实现,开发者只需替换其中的图片资源即可直接应用。
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>www.jb51.net JS左右无缝轮播</title>
<style>
* {margin:0;padding:0;}
#scrollImg{width:1000px;margin:100px auto;}
#prev{float:left;line-height:250px;}
#next{float:right;line-height:250px;}
#div1 {width:800px;height:250px;margin:0px auto;position:relative;overflow:hidden;}
#div1 ul {position:absolute;left:0;top:0;}
#div1 ul li {float:left;list-style:none;width:200px;height:250px;}
#div1 ul li img{width:100%;height:100%;}
</style>
</head>
<body>
<div id="scrollImg">
<a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" id="prev">向左</a>
<a href="javascript:void(0)" rel="external nofollow" rel="external nofollow" id="next">向右</a>
<div id="div1">
<ul>
<li><img src="image/0.jpeg" /></li>
<li><img src="image/1.JPEG" /></li>
<li><img src="image/3.jpg" /></li>
<li><img src="image/4.jpeg" /></li>
</ul>
</div>
</div>
<script>
window.onload=function(){
var oDiv=document.getElementById("div1");
var oUl=document.getElementsByTagName("ul")[0];
var oLi=document.getElementsByTagName("li");
var index=0;
var timer;//定时器
oUl.innerHTML=oUl.innerHTML+oUl.innerHTML;//将轮播内容复制一份
oUl.style.width=oLi[0].offsetWidth*oLi.length+"px";
//移动速度
var speed=-10;
//控制滚动的方向
var prev=document.getElementById("prev");
var next=document.getElementById("next");
//上一页
prev.onclick=function(){
if(index==4){
index=1;
oUl.style.left="0px";
}else{
index++;
speed=10;
}
move();
};
//下一页
next.onclick=function(){
if(index==0){
index=3;
oUl.style.left=-oUl.offsetWidth/2+"px";
}else{
index--;
speed=-10;
}
move();
};
function move(){
timer=setInterval(function () {
oUl.style.left=oUl.offsetLeft-speed+"px";
var stop=-index*oLi[0].offsetWidth+"px";
prev.style.visibility="hidden";
next.style.visibility="hidden";
if(oUl.style.left==stop){
clearInterval(timer);
prev.style.visibility="visible";
next.style.visibility="visible";
}
},20);
}
}
</script>
</body>
</html>
代码测试与扩展资源
感兴趣的用户可以通过在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun来测试上述代码的实际运行效果。
如需了解更多JavaScript相关知识,建议查阅本站专题:《JavaScript图片操作技巧大全》、《JavaScript切换特效与技巧总结》、《JavaScript运动效果与技巧汇总》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》。
希望本文提供的代码和说明能对大家的JavaScript编程工作有所帮助。
JavaScript闭包与类(Class)的区别及适用场景对比
2026-11-05 15:48:57
JavaScript入门要学ES6吗?let与箭头函数等新特性解析
2026-11-05 14:49:16
JavaScript 8种数据类型详解:基本类型与引用类型的区别
2026-11-05 14:25:15
怎么在JavaScript中使用async/await优化Ajax异步流程
2026-11-05 13:56:15
JavaScript replace回调函数实现动态正则替换逻辑
2026-11-05 13:52:13
