基于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 相关文章推荐
点图片上一页下一页翻页效果
Jul 09 Javascript
高性能WEB开发 flush让页面分块,逐步呈现 flush让页面分块,逐步呈现
Jun 19 Javascript
js中call与apply的用法小结
Dec 28 Javascript
移动端滑动插件Swipe教程
Oct 16 Javascript
JAVA Web实时消息后台服务器推送技术---GoEasy
Nov 04 Javascript
利用vue.js插入dom节点的方法
Mar 15 Javascript
使用jQuery实现鼠标点击左右按钮滑动切换
Aug 04 jQuery
微信小程序自定义组件实现tabs选项卡功能
Jul 14 Javascript
微信小程序表单验证form提交错误提示效果
Jun 19 Javascript
vue基础之使用get、post、jsonp实现交互功能示例
Mar 12 Javascript
微信小程序 如何保持登录状态
Aug 16 Javascript
JS pushlet XMLAdapter适配器用法案例解析
Oct 16 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模板引擎Smarty之配置文件在模板变量中的使用方法示例
2016/04/11 PHP
详解php用curl调用接口方法,get和post两种方式
2017/01/13 PHP
js中的eventType事件及其浏览器支持性介绍
2013/11/29 Javascript
14个有用的Jquery技巧分享
2015/01/08 Javascript
深入理解JavaScript系列(33):设计模式之策略模式详解
2015/03/03 Javascript
jQuery中的ajax async同步和异步详解
2015/09/29 Javascript
javascript中checkbox使用方法简单实例演示
2015/11/17 Javascript
AngularJS实现表单手动验证和表单自动验证
2015/12/09 Javascript
手机端 HTML5使用photoswipe.js仿微信朋友圈图片放大效果
2016/08/25 Javascript
jquery实现左右滑动式轮播图
2017/03/02 Javascript
JS中SetTimeout和SetInterval使用初探
2017/03/23 Javascript
JS点击缩略图整屏居中放大图片效果
2017/07/04 Javascript
分享vue.js devtools遇到一系列问题
2017/10/24 Javascript
vue项目中应用ueditor自定义上传按钮功能
2018/04/27 Javascript
vue2.0实现的tab标签切换效果(内容可自定义)示例
2019/02/11 Javascript
Angular8基础应用之表单及其验证
2019/08/11 Javascript
微信小程序使用蓝牙小插件
2019/09/23 Javascript
js实现抽奖的两种方法
2020/03/19 Javascript
[01:38]2018DOTA2亚洲邀请赛主赛事第二日现场采访 神秘商人痛陈生计不易
2018/04/05 DOTA
[01:26]DOTA2荣耀之路2:iG,China
2018/05/24 DOTA
python中实现迭代器(iterator)的方法示例
2017/01/19 Python
Python采集猫眼两万条数据 对《无名之辈》影评进行分析
2018/12/05 Python
python学习——内置函数、数据结构、标准库的技巧(推荐)
2019/04/18 Python
8段用于数据清洗Python代码(小结)
2019/10/31 Python
美国踏板车和轻便摩托车销售网站:Mega Motor Madness
2020/02/26 全球购物
Linux Interview Questions For software testers
2013/05/17 面试题
高中军训广播稿
2014/01/14 职场文书
群众路线教育实践活动方案
2014/02/02 职场文书
小学节能减排倡议书
2014/05/15 职场文书
重阳节慰问信
2015/02/15 职场文书
培训讲师开场白
2015/06/01 职场文书
实施意见格式范本
2015/06/05 职场文书
公司仓库管理制度
2015/08/04 职场文书
采购员工作总结范文
2015/08/12 职场文书
redis哨兵常用命令和监控示例详解
2021/05/27 Redis
Vue中使用import进行路由懒加载的原理分析
2022/04/01 Vue.js