javascript实现的上下无缝滚动效果


Posted in Javascript onSeptember 19, 2016

本文实例讲述了javascript实现的上下无缝滚动效果。分享给大家供大家参考,具体如下:

前面介绍了JS左右无缝滚动效果,现在做下无缝滚动——上下的效果。其他代码和左右的差不多,只是改变的是 offsetTop 的值,并且不需要计算 ul 整体的宽度了。

<!DOCTYPE HTML>
<html lang="en-US">
<head>
  <meta charset="UTF-8">
  <title>无缝滚动——上下</title>
  <style type="text/css">
  *{margin:0;padding:0;}
  li{list-style:none;}
  img{border:0;}
  #scroll{width:178px;margin:50px auto;position:relative;}
  .btn{display:block;width:27px;height:27px;margin-left:auto;margin-right:auto;cursor:pointer;}
  .up{background:url(images/up.gif);}
  .down{background:url(images/down.gif);}
  .content{margin:10px 0;height:440px;overflow:hidden;position:relative;}
  .content ul{position:absolute;top:0;left:0;}
  .content li{height:110px;}
  </style>
</head>
<body>
  <div id="scroll">
    <a href="javascript:;" id="up" class="btn up"></a>
    <div class="content">
      <ul>
        <li><a href="#" title="111"><img src="images/1.jpg" alt="111" width="178" height="108"/></a></li>
        <li><a href="#" title="222"><img src="images/2.jpg" alt="222" width="178" height="108"/></a></li>
        <li><a href="#" title="333"><img src="images/3.jpg" alt="333" width="178" height="108"/></a></li>
        <li><a href="#" title="444"><img src="images/4.jpg" alt="444" width="178" height="108"/></a></li>
      </ul>
    </div>
    <a class="btn down" href="javascript:;" id="down"></a>
  </div>
</body>
</html>
<script type="text/javascript">
window.onload = function(){
  var oDiv = document.getElementById('scroll');
  var btnUp = document.getElementById('up');
  var btnDown = document.getElementById('down');
  var oUl = oDiv.getElementsByTagName('ul')[0];
  var timer = null;
  var speed = -1;
  oUl.innerHTML += oUl.innerHTML;
  setTimeout(move,1500);
  btnUp.onclick = function(){
    clearInterval(timer);
    speed = -1;
    move();
  };
  btnDown.onclick = function(){
    clearInterval(timer);
    speed = 1;
    move();
  };
  oUl.onmouseover = function(){
    clearInterval(timer);
  };
  oUl.onmouseout = function(){
    move();
  };
  function move(){
    timer = setInterval(function(){
      oUl.style.top = oUl.offsetTop + speed + 'px';
      if(oUl.offsetTop <= - oUl.offsetHeight / 2){
        oUl.style.top = '0';
      }else if(oUl.offsetTop >= 0){
        oUl.style.top = - oUl.offsetHeight / 2 + 'px';
      };
    },30);
  };
};
</script>

如果要改变移动速度,修改 speed 的值即可,初始默认为向上移动,即速度为负数。

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
jquery 必填项判断表单是否为空的方法
Sep 14 Javascript
简介JavaScript中的getUTCFullYear()方法的使用
Jun 10 Javascript
javascript每日必学之继承
Feb 23 Javascript
Bootstrap多级导航栏(级联导航)的实现代码
Mar 08 Javascript
AngularJS中的缓存使用
Jan 11 Javascript
js弹出窗口简单实现代码
Mar 22 Javascript
详解AngularJS跨页面传值(ui-router)
Aug 23 Javascript
使用vue + less 实现简单换肤功能的示例
Feb 21 Javascript
react项目实践之webpack-dev-serve
Sep 14 Javascript
利用JavaScript的Map提升性能的方法详解
Aug 14 Javascript
微信用户访问小程序的登录过程详解
Sep 20 Javascript
JavaScript如何实现防止重复的网络请求的示例
Jan 28 Javascript
Angular ng-class详解及实例代码
Sep 19 #Javascript
javascript实现的左右无缝滚动效果
Sep 19 #Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
Sep 19 #Javascript
BootStrap入门教程(三)之响应式原理
Sep 19 #Javascript
HTML5 实现的一个俄罗斯方块实例代码
Sep 19 #Javascript
javascript this详细介绍
Sep 19 #Javascript
JS遍历ul下的li点击弹出li的索引的实现方法
Sep 19 #Javascript
You might like
apache2.2.4+mysql5.0.77+php5.2.8安装精简
2009/04/29 PHP
php强制更新图片缓存的方法
2015/02/11 PHP
分享50个提高PHP执行效率的技巧
2015/12/26 PHP
php compact 通过变量创建数组
2016/11/15 PHP
js基于qrcode.js生成二维码的方法【附demo插件源码下载】
2016/12/28 PHP
防止动态加载JavaScript引起的内存泄漏问题
2009/10/08 Javascript
javascript判断并获取注册表中可信任站点的方法
2015/06/01 Javascript
jQuery中的Deferred和promise 的区别
2016/04/03 Javascript
巧用Javascript的逻辑运算符
2016/12/02 Javascript
ionic使用angularjs表单验证(模板验证)
2018/12/12 Javascript
7个好用的JavaScript技巧分享(译)
2019/05/07 Javascript
layui table表格数据的新增,修改,删除,查询,双击获取行数据方式
2019/11/14 Javascript
基于Vue实现微前端的示例代码
2020/04/24 Javascript
[56:12]LGD vs Optic Supermajor小组赛D组胜者组决赛 BO3 第一场 6.3
2018/06/04 DOTA
python实现在字符串中查找子字符串的方法
2015/07/11 Python
python实现中文转换url编码的方法
2016/06/14 Python
搭建Python的Django框架环境并建立和运行第一个App的教程
2016/07/02 Python
python生成随机图形验证码详解
2017/11/08 Python
python中的变量如何开辟内存
2018/06/26 Python
python中多个装饰器的执行顺序详解
2018/10/08 Python
Python定时发送消息的脚本:每天跟你女朋友说晚安
2018/10/21 Python
Python OpenCV 调用摄像头并截图保存功能的实现代码
2019/07/02 Python
python用线性回归预测股票价格的实现代码
2019/09/04 Python
Python文件名匹配与文件复制的实现
2020/12/11 Python
雅诗兰黛美国官网:Estee Lauder美国
2016/07/21 全球购物
英国外籍人士的在线超市:British Corner Shop
2019/06/03 全球购物
培训讲师岗位职责
2014/04/13 职场文书
冬季施工防火方案
2014/05/17 职场文书
刑事辩护授权委托书
2014/09/13 职场文书
判缓刑人员个人思想汇报
2014/10/10 职场文书
公司捐书倡议书
2015/04/27 职场文书
上级领导检查欢迎词
2015/09/30 职场文书
高中生物教学反思
2016/02/20 职场文书
《法国号》教学反思
2016/02/22 职场文书
python如何利用traceback获取详细的异常信息
2021/06/05 Python
解决Springboot PostMapping无法获取数据的问题
2022/05/06 Java/Android