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拖拽 &amp; 弹出层 介绍与示例
Dec 27 Javascript
JS将所有对象s的属性复制给对象r(原生js+jquery)
Jan 25 Javascript
写出高效jquery代码的19条指南
Mar 19 Javascript
JavaScript使用indexOf获得子字符串在字符串中位置的方法
Apr 06 Javascript
javascript实现可全选、反选及删除表格的方法
May 15 Javascript
JS实现超简洁网页title标题跑动闪烁提示效果代码
Oct 23 Javascript
js表单登陆验证示例
Oct 19 Javascript
Js apply方法详解
Feb 16 Javascript
JS传播事件、取消事件默认行为、阻止事件传播详解
Aug 14 Javascript
jquery tmpl模板(实例讲解)
Sep 02 jQuery
微信小程序实现点击按钮修改字体颜色功能【附demo源码下载】
Dec 05 Javascript
详解JavaScript 中 if / if...else...替换方式
Jul 15 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
常见的PHP五种设计模式小结
2011/03/23 PHP
PHP自定义大小验证码的方法详解
2013/06/07 PHP
PHP ignore_user_abort函数详细介绍和使用实例
2014/07/15 PHP
php中ob_flush函数和flush函数用法分析
2015/03/18 PHP
php实现解析xml并生成sql语句的方法
2018/02/03 PHP
jquery 操作日期、星期、元素的追加的实现代码
2012/02/07 Javascript
Js使用WScript.Shell对象执行.bat文件和cmd命令
2014/12/18 Javascript
js计算文本框输入的字符数
2015/10/23 Javascript
AngularJS directive返回对象属性详解
2016/03/28 Javascript
关于jQuery库冲突的完美解决办法
2017/05/20 jQuery
Vue项目webpack打包部署到服务器的实例详解
2017/07/17 Javascript
jQuery简单实现对数组去重及排序操作实例
2017/10/31 jQuery
微信小程序icon组件使用详解
2018/01/31 Javascript
基于rollup的组件库打包体积优化小结
2018/06/18 Javascript
JS实现快递单打印功能【推荐】
2018/06/21 Javascript
WebSocket的简单介绍及应用
2019/05/23 Javascript
vue-cli3配置favicon.ico和title的流程
2020/10/27 Javascript
python实现保存网页到本地示例
2014/03/16 Python
python 远程统计文件代码分享
2015/05/14 Python
在Django中同时使用多个配置文件的方法
2015/07/22 Python
python rsa 加密解密
2017/03/20 Python
Python实现购物系统(示例讲解)
2017/09/13 Python
Python编程使用*解包和itertools.product()求笛卡尔积的方法
2017/12/18 Python
python合并已经存在的sheet数据到新sheet的方法
2018/12/11 Python
python3 实现调用串口功能
2019/12/26 Python
解决ROC曲线画出来只有一个点的问题
2020/02/28 Python
Django 实现 Websocket 广播、点对点发送消息的代码
2020/06/03 Python
香港连卡佛百货官网:Lane Crawford
2019/09/04 全球购物
Groupon西班牙官方网站:在线优惠券和交易,节省高达70%
2021/03/13 全球购物
Ajax请求总共有多少种Callback
2016/07/17 面试题
《狼》教学反思
2014/03/02 职场文书
工地安全生产标语
2014/06/06 职场文书
教育实习指导教师评语
2014/12/31 职场文书
2015年度个人思想工作总结
2015/04/08 职场文书
SQLServer 日期函数大全(小结)
2021/04/08 SQL Server
用Python实现屏幕截图详解
2022/01/22 Python