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 相关文章推荐
屏蔽F1~F12的快捷键的js函数
May 06 Javascript
JS、CSS加载中的小问题探讨
Nov 26 Javascript
jquery实现点击查看更多内容控制段落文字展开折叠效果
Aug 06 Javascript
jQuery实现鼠标跟随提示层效果代码(可显示文本,Div,Table,Html等)
Apr 18 Javascript
jQuery和hwSlider实现内容响应式可触控滑动切换效果附源码下载(二)
Jun 22 Javascript
xtemplate node.js 的使用方法实例解析
Aug 22 Javascript
详解js的六大数据类型
Dec 27 Javascript
JavaScript中的编码和解码函数
Feb 15 Javascript
深入理解Node.js中的进程管理
Mar 13 Javascript
微信小程序 实现列表项滑动显示删除按钮的功能
Apr 13 Javascript
jQuery条件分页 代替离线查询(附代码)
Aug 17 jQuery
浅谈Angular6的服务和依赖注入
Jun 27 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面向对象分析设计的经验原则
2008/09/20 PHP
ThinkPHP查询返回简单字段数组的方法
2014/08/25 PHP
PHP中大于2038年时间戳的问题处理方案
2015/03/03 PHP
php自定义时间转换函数示例
2016/12/07 PHP
PHP的PDO大对象(LOBs)
2019/01/27 PHP
javascript比较文档位置
2008/04/08 Javascript
jquery学习笔记二 实现可编辑的表格
2010/04/09 Javascript
iframe自适应宽度、高度 ie6 7 8,firefox 3.86下测试通过
2010/07/29 Javascript
JS获取图片实际宽高及根据图片大小进行自适应
2013/08/11 Javascript
Javascript 按位左移运算符使用介绍(
2014/02/04 Javascript
jquery实现文本框数量加减功能的例子分享
2014/05/10 Javascript
初识Node.js
2014/09/03 Javascript
倾力总结40条常见的移动端Web页面问题解决方案
2016/05/24 Javascript
使用Javascript判断浏览器终端设备(PC、IOS(iphone)、Android)
2017/01/04 Javascript
angularjs实现的前端分页控件示例
2017/02/10 Javascript
微信小程序获取手机网络状态的方法【附源码下载】
2017/12/08 Javascript
vue-scroller记录滚动位置的示例代码
2018/01/17 Javascript
Puppet的一些技巧
2018/09/17 Javascript
taro开发微信小程序的实践
2019/05/21 Javascript
JavaScript canvas实现跟随鼠标事件
2020/02/10 Javascript
Javascript模拟实现new原理解析
2020/03/03 Javascript
[46:55]Ti4 冒泡赛第二轮 LGD vs C9
2014/07/14 DOTA
[04:29]【TI9采访】OG.N0tail在胜者组决赛后接受采访
2019/08/25 DOTA
浅谈Python2.6和Python3.0中八进制数字表示的区别
2017/04/28 Python
python flask 多对多表查询功能
2017/06/25 Python
Python 实现OpenCV格式和PIL.Image格式互转
2020/01/09 Python
Python序列化pickle模块使用详解
2020/03/05 Python
HTML5实现预览本地图片
2016/02/17 HTML / CSS
canvas学习总结三之绘制路径-线段
2019/01/31 HTML / CSS
世界上最大的高分辨率在线图片库:Alamy
2018/07/07 全球购物
大学生创业计划书的范文
2014/01/07 职场文书
七一讲话心得体会
2014/09/05 职场文书
2016年共产党员公开承诺书
2016/03/24 职场文书
销区经理年终述职报告模板
2019/11/28 职场文书
python爬取某网站原图作为壁纸
2021/06/02 Python
MySQL 数据表操作
2022/05/04 MySQL