JavaScript 实现无缝滚动效果的完整代码与原理

作者:半夏时间:2026-10-30 13:07:01浏览:129

本文详解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>

无缝滚动原理与交互逻辑

该效果的核心原理在于:内容容器的总宽度需显著大于可视展示区域的宽度,从而触发滚动条的出现。为了实现视觉上的无缝衔接,代码中复制了一份图片内容,使得滚动循环更加自然平滑。具体的实现细节可参考下方的完整代码。

以上就是本文的全部内容,希望这些内容能对各位的学习有所帮助,同时也欢迎大家继续支持本站。

作者最新文章