欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

基于JavaScript实现无缝滚动效果

程序员文章站 2022-05-26 08:24:13
本文实例为大家分享了javascript实现无缝滚动效果展示的具体代码,供大家参考,具体内容如下 首先应该区分样式中的绝对定位和相对定位,一般来说,移动的单位...

本文实例为大家分享了javascript实现无缝滚动效果展示的具体代码,供大家参考,具体内容如下

  • 首先应该区分样式中的绝对定位和相对定位,一般来说,移动的单位为绝对定位,在这个实例中,移动的ul就是绝对定位 ,否则它根本无法滚动,而它相对于div1滚动 ,则div1就作为他的相对定位。
  • oul.innerhtml=oul.innerhtml+oul.innerhtml;这段代码是实现无缝滚动的核心,使之可以在不论左右滚动的时候都有下一步图片接上去。
  • 在操作或者进行比较的时候,都要用offset取值来进行操作或者比较!!!

代码:

<!doctype html>
<html lang="en">
<head>
 <meta charset="utf-8">
 <title>无缝滚动2</title>
 <style type="text/css"> 
 *{
  padding: 0;
  margin:0;
 }
 #div1{
  position: relative;
  width: 800px;
  height: 200px;
  background:red;
  margin:100px auto;
  overflow: hidden;
 }
 #div1 ul{
  position: absolute;
  left: 0;
  top: 0;

 }
 #div1 ul li{
  float: left;
  list-style: none;
  width: 200px;
  height: 200px;
 }
 </style>
 <script type="text/javascript">
 window.onload=function()
 {
  var odiv = document.getelementbyid('div1');
  var oul = odiv.getelementsbytagname('ul')[0];
  var ali = odiv.getelementsbytagname('li');
  var aa = document.getelementsbytagname('a');
  var speed = 3;
  oul.innerhtml=oul.innerhtml+oul.innerhtml;
  oul.style.width=ali.length*ali[0].offsetwidth+'px';

  var timer=setinterval(move,30);

  function move()
  { 
   if (oul.offsetleft<=-oul.offsetwidth/2) {
    oul.style.left="0";
    } 
    if(oul.offsetleft>0){
     oul.style.left=-oul.offsetwidth/2+'px';
    }
    oul.style.left=oul.offsetleft+speed+'px';
  };
  odiv.onmouseover=function()
  {
   clearinterval(timer);
  };
  odiv.onmouseout=function()
  {
   timer=setinterval(move,30);
  };
  aa[0].onclick=function()
  {
   speed=-3;
  };
  aa[1].onclick=function()
  {
   speed=3;
  };
 };
 </script>
</head>
<body>
 <a href="javascript:;">向左</a>
 <a href="javascript:;">向右</a>
 <div id="div1">
  <ul>
   <li><img src="images/n1.jpg"></li>
   <li><img src="images/n2.jpg"></li>
   <li><img src="images/n3.jpg"></li>
   <li><img src="images/n4.jpg"></li>
  </ul>
 </div>
</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。