基于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 相关文章推荐
六款帮助你实现惊艳视差滚动效果的jQuery插件
Sep 14 Javascript
js获取多个tagname的节点数组
Sep 22 Javascript
JavaScript indexOf方法入门实例(计算指定字符在字符串中首次出现的位置)
Oct 17 Javascript
Sea.JS知识总结
May 05 Javascript
jQuery实现鼠标经过时高亮,同时其他同级元素变暗的效果
Sep 18 Javascript
js+div+css下拉导航菜单完整代码分享
Dec 28 Javascript
微信小程序学习(4)-系统配置app.json详解
Jan 12 Javascript
利用JS测试目标网站的打开响应速度
Dec 01 Javascript
three.js实现3D影院的原理的代码分析
Dec 18 Javascript
nuxt中使用路由守卫的方法步骤
Jan 27 Javascript
微信小程序常用简易小函数总结
Feb 01 Javascript
jQuery操作cookie的示例代码
Jun 05 jQuery
基于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
利用递归把多维数组转为一维数组的函数
2006/10/09 PHP
关于php 接口问题(php接口主要也就是运用curl,curl函数)
2013/07/01 PHP
destoon调用discuz论坛中带图片帖子的实现方法
2014/08/21 PHP
浅谈php中urlencode与rawurlencode的区别
2016/09/05 PHP
PHP+Ajax 检测网络是否正常实例详解
2016/12/16 PHP
PHP基础之输出缓冲区基本概念、原理分析
2019/06/19 PHP
JavaScript具有类似Lambda表达式编程能力的代码(改进版)
2010/09/14 Javascript
javascript+ajax实现产品页面加载信息
2015/07/09 Javascript
基于jquery实现瀑布流布局
2020/06/28 Javascript
原生JS实现的放大镜效果实例代码
2016/10/15 Javascript
微信小程序页面间通信的5种方式
2017/03/31 Javascript
Vue 2.0中生命周期与钩子函数的一些理解
2017/05/09 Javascript
vue2.0中goods选购栏滚动算法的实现代码
2017/05/17 Javascript
使用Angular-CLI构建NPM包的方法
2018/09/07 Javascript
详解mpvue实现对苹果X安全区域的适配
2019/07/31 Javascript
vue用BMap百度地图实现即时搜索功能
2019/09/26 Javascript
vue element 中的table动态渲染实现(动态表头)
2019/11/21 Javascript
小谈angular ng deploy的实现
2020/04/07 Javascript
解决element-ui的下拉框有值却无法选中的情况
2020/11/07 Javascript
JS实现可以用键盘方向键控制的动画
2020/12/11 Javascript
python使用7z解压软件备份文件脚本分享
2014/02/21 Python
Python 的 Socket 编程
2015/03/24 Python
解决pyqt中ui编译成窗体.py中文乱码的问题
2016/12/23 Python
python基于ID3思想的决策树
2018/01/03 Python
python 实现返回一个列表中出现次数最多的元素方法
2019/06/11 Python
python交易记录链的实现过程详解
2019/07/03 Python
python之pymysql模块简单应用示例代码
2019/12/16 Python
python-sys.stdout作为默认函数参数的实现
2020/02/21 Python
Python+Appium实现自动化测试的使用步骤
2020/03/24 Python
手把手教你安装Windows版本的Tensorflow
2020/03/26 Python
解决jupyter notebook打不开无反应 浏览器未启动的问题
2020/04/10 Python
HTML5 WebGL 实现民航客机飞行监控系统
2019/07/25 HTML / CSS
Solaris操作系统的线程机制
2015/07/28 面试题
家长会主持词
2014/03/26 职场文书
争先创优公开承诺书
2014/08/30 职场文书
MySQL 全文索引使用指南
2021/05/25 MySQL