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的asp.net树实现代码
Nov 30 Javascript
Node.js异步I/O学习笔记
Nov 04 Javascript
jQuery实现DIV层收缩展开的方法
Feb 27 Javascript
Javascript编写2048小游戏
Jul 07 Javascript
浅谈layer的iframe弹窗给里面的标签赋值的问题
Nov 10 Javascript
js前端日历控件(悬浮、拖拽、自由变形)
Mar 02 Javascript
详解webpack+es6+angular1.x项目构建
May 02 Javascript
Javascript继承机制详解
May 30 Javascript
Vue-CLI3.x 设置反向代理的方法
Dec 06 Javascript
详解在Javascript中进行面向切面编程
Apr 28 Javascript
Vue事件处理原理及过程详解
Mar 11 Javascript
JS 5种遍历对象的方式
Jun 16 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面向对象全攻略 (一) 面向对象基础知识
2009/09/30 PHP
在Nginx上部署ThinkPHP项目教程
2015/02/02 PHP
PHP使用PDO连接ACCESS数据库
2015/03/05 PHP
PHP从零开始打造自己的MVC框架之入口文件实现方法详解
2019/06/03 PHP
PHP实现简单用户登录界面
2019/10/23 PHP
ASP.NET jQuery 实例15 通过控件CustomValidator验证CheckBoxList
2012/02/03 Javascript
使用jquery实现IE下按backspace相当于返回操作
2014/03/18 Javascript
什么是cookie?js手动创建和存储cookie
2014/05/27 Javascript
JavaScript设计模式学习之“类式继承”
2015/03/12 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(下)
2015/10/28 Javascript
js实现网页图片延时加载 提升网页打开速度
2016/01/26 Javascript
基于jquery插件编写countdown计时器
2016/06/12 Javascript
JavaScript接口的实现三种方式(推荐)
2016/06/14 Javascript
详解webpack 多入口配置
2017/06/16 Javascript
ES6新增的math,Number方法
2017/08/06 Javascript
利用纯js + transition动画实现移动端web轮播图详解
2017/09/10 Javascript
JavaScript实现重力下落与弹性效果的方法分析
2017/12/20 Javascript
Vue 中对图片地址进行拼接的方法
2018/09/03 Javascript
一步一步的了解webpack4的splitChunk插件(小结)
2018/09/17 Javascript
小程序获取周围IBeacon设备的方法
2018/10/31 Javascript
生成无限制的微信小程序码的示例代码
2019/09/20 Javascript
vue中实现图片压缩 file文件的方法
2020/05/28 Javascript
uniapp微信小程序:key失效的解决方法
2021/01/20 Javascript
合并Excel工作薄中成绩表的VBA代码,非常适合教育一线的朋友
2009/04/09 Python
TensorFlow的权值更新方法
2018/06/14 Python
PyQt5重写QComboBox的鼠标点击事件方法
2019/06/25 Python
浅谈pytorch grad_fn以及权重梯度不更新的问题
2019/08/20 Python
python Paramiko使用示例
2020/09/21 Python
HTML5 Canvas 旋转风车绘制
2017/08/18 HTML / CSS
德国大型的家具商店:Pharao24.de
2016/10/02 全球购物
出纳员的岗位职责
2014/02/22 职场文书
乡镇个人对照检查材料
2014/08/22 职场文书
学习三严三实心得体会
2014/10/13 职场文书
军事博物馆观后感
2015/06/05 职场文书
2019暑假学生安全口号
2019/06/27 职场文书
python爬虫--selenium模块
2021/03/31 Python