本文详解JavaScript实现无缝滚动的核心原理,即通过复制内容使容器宽度大于展示区。提供了包含HTML结构、CSS样式及JS逻辑的完整代码示例,并解释了鼠标悬停暂停与恢复滚动的交互实现,适合前端开发者参考学习。
JavaScript 无缝滚动效果实现
本文提供了一套完整的JavaScript无缝滚动效果实现代码,供读者参考和使用。
HTML 结构与 CSS 样式
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>无缝滚动</title>
<style>
#warp{
width: 1200px;
height: 300px;
overflow: hidden;
margin:100px auto 0;
}
#warp #con{
width: 4000px;
height: 300px;
overflow: hidden;
}
#warp #con #box1{
float: left;
overflow: hidden;
}
#warp #con #box2{
float: left;
overflow: hidden;
}
#warp img{
float: left;
width: 200px;
height: 300px;
}
</style>
</head>
<body>
<div id="warp">
<div id="con">
<div id="box1">
<img src="images/meinv1.jpg" alt="">
<img src="images/meinv2.jpg" alt="">
<img src="images/meinv3.jpg" alt="">
<img src="images/meinv4.jpg" alt="">
<img src="images/meinv5.jpg" alt="">
<img src="images/meinv6.jpg" alt="">
</div>
<div id="box2"></div>
</div>
</div>
<script>
var warp=document.getElementById('warp');
var con=document.getElementById('con');
var box1=document.getElementById('box1');
var box2=document.getElementById('box2');
// box2.innerHTML=box1.innerHTML;
var timer1=null,x=0;
function scroll(){//滚动函数
box2.innerHTML=box1.innerHTML;
timer1=setInterval(function(){
x++;
if (x>=box1.clientWidth) {
x=0;
warp.scrollLeft=x;
}
warp.scrollLeft=x;
},10)
}
scroll();
warp.onmouseenter=function(){
clearInterval(timer1);
}
warp.onmouseleave=function(){
scroll();
}
</script>
</body>
</html>
无缝滚动原理与交互逻辑
该效果的核心原理在于:内容容器的总宽度需显著大于可视展示区域的宽度,从而触发滚动条的出现。为了实现视觉上的无缝衔接,代码中复制了一份图片内容,使得滚动循环更加自然平滑。具体的实现细节可参考下方的完整代码。
以上就是本文的全部内容,希望这些内容能对各位的学习有所帮助,同时也欢迎大家继续支持本站。