基于JavaScript实现无缝滚动效果


Posted in Javascript onJuly 21, 2017

本文实例为大家分享了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>

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

Javascript 相关文章推荐
判断是否输入完毕再激活提交按钮
Jun 26 Javascript
Jquery实现顶部弹出框特效
Aug 08 Javascript
JavaScript实现的MD5算法完整实例
Feb 02 Javascript
浅谈JavaScript中小数和大整数的精度丢失
May 31 Javascript
jQuery插件cxSelect多级联动下拉菜单实例解析
Jun 24 Javascript
jQuery事件委托之Safari
Jul 05 Javascript
jquery实现自适应banner焦点图
Feb 16 Javascript
高效的jQuery代码编写技巧总结
Feb 22 Javascript
JavaScript下拉菜单功能实例代码
Mar 01 Javascript
详解vue-resource promise兼容性问题
Jun 20 Javascript
浅谈JS中的常用选择器及属性、方法的调用
Jul 28 Javascript
angularjs 的数据绑定实现原理
Jul 02 Javascript
基于JavaScript实现选项卡效果
Jul 21 #Javascript
基于JavaScript实现弹幕特效
Aug 27 #Javascript
js实现水平滚动菜单导航
Jul 21 #Javascript
修改 bootstrap table 默认detailRow样式的实例代码
Jul 21 #Javascript
JavaScript实现购物车基本功能
Jul 21 #Javascript
解决html input验证只能输入数字,不能输入其他的问题
Jul 21 #Javascript
js案例之鼠标跟随jquery版(实例讲解)
Jul 21 #jQuery
You might like
一个简单的PHP投票程序源码
2007/03/11 PHP
c#中的实现php中的preg_replace
2009/12/21 PHP
PHP设计模式之装饰者模式
2012/02/29 PHP
PHP超低内存遍历目录文件和读取超大文件的方法
2019/05/01 PHP
javascript获取URL参数与参数值的示例代码
2013/12/20 Javascript
JS如何将数字类型转化为没3个一个逗号的金钱格式
2014/01/27 Javascript
node.js中的buffer.fill方法使用说明
2014/12/14 Javascript
轻松创建nodejs服务器(6):作出响应
2014/12/18 NodeJs
jQuery使用load()方法载入另外一个网页文件内的指定标签内容到div标签的方法
2015/03/25 Javascript
JS根据生日算年龄的方法
2015/05/05 Javascript
简介JavaScript中getUTCMonth()方法的使用
2015/06/10 Javascript
jQuery复制表单元素附源码分享效果演示
2015/09/30 Javascript
如何解决ligerUI布局时Center中的Tab高度大小
2015/11/24 Javascript
AngularJs  unit-testing(单元测试)详解
2016/09/02 Javascript
angularjs1.X 重构controller 的方法小结
2019/08/15 Javascript
使用Promise封装小程序wx.request的实现方法
2019/11/13 Javascript
JavaScript console的使用方法实例分析
2020/04/28 Javascript
js实现简单的随机点名器
2020/09/17 Javascript
在nuxt中使用路由重定向的实例
2020/11/06 Javascript
python在Windows8下获取本机ip地址的方法
2015/03/14 Python
Python实现将xml导入至excel
2015/11/20 Python
批量获取及验证HTTP代理的Python脚本
2017/04/23 Python
linux安装Python3.4.2的操作方法
2018/09/28 Python
详解Python发送email的三种方式
2018/10/18 Python
python设置代理和添加镜像源的方法
2020/02/14 Python
new_zeros() pytorch版本的转换方式
2020/02/18 Python
Python的Django框架实现数据库查询(不返回QuerySet的方法)
2020/05/19 Python
Python logging模块写入中文出现乱码
2020/05/21 Python
Python如何转换字符串大小写
2020/06/04 Python
使用CSS禁止textarea调整大小功能的方法
2015/03/13 HTML / CSS
俄罗斯韩国化妆品网上商店:Cosmasi.ru
2019/10/31 全球购物
英国奢华护肤、美容和Spa品牌:Temple Spa
2019/11/02 全球购物
Python面试题:Python是如何进行内存管理的
2014/08/04 面试题
经理秘书岗位职责
2013/11/14 职场文书
Python3中最常用的5种线程锁实例总结
2021/07/07 Python
SpringBoot2零基础到精通之数据库专项精讲
2022/03/22 Java/Android