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 相关文章推荐
Javascript中暂停功能的实现代码
Mar 04 Javascript
基于jquery点击自以外任意处,关闭自身的代码
Feb 10 Javascript
3种Jquery限制文本框只能输入数字字母的方法
Dec 03 Javascript
微信小程序前端源码逻辑和工作流
Sep 25 Javascript
jQuery将表单序列化成一个Object对象的实例
Nov 29 Javascript
关于Node.js的events.EventEmitter用法介绍
Apr 01 Javascript
Vue.js框架路由使用方法实例详解
Aug 25 Javascript
详解vue中async-await的使用误区
Dec 05 Javascript
解决layUI的页面显示不全的问题
Sep 20 Javascript
vue项目中使用eslint+prettier规范与检查代码的方法
Jan 16 Javascript
Vue+Element UI 树形控件整合下拉功能菜单(tree + dropdown +input)
Aug 28 Javascript
vue整合百度地图显示指定地点信息
Apr 06 Vue.js
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
phpmyadmin中禁止外网使用的方法
2014/11/04 PHP
jQuery ui插件的使用方法代码实例
2013/05/08 Javascript
Javascript实现动态菜单添加的实例代码
2013/07/05 Javascript
js+CSS实现弹出居中背景半透明div层的方法
2015/02/26 Javascript
JS实现控制表格行内容垂直对齐的方法
2015/03/30 Javascript
JavaScript中继承用法实例分析
2015/05/16 Javascript
javascript中闭包(Closure)详解
2016/01/06 Javascript
vuejs在解析时出现闪烁的原因及防止闪烁的方法
2016/09/19 Javascript
使用jQuery实现一个类似GridView的编辑,更新,取消和删除的功能
2017/03/15 Javascript
js实现多行文本框统计剩余字数功能
2017/03/28 Javascript
NodeJs中express框架的send()方法简介
2017/06/20 NodeJs
解决Webpack 热部署检测不到文件变化的问题
2018/02/22 Javascript
详解小程序退出页面时清除定时器
2019/04/28 Javascript
微信小程序框架的页面布局代码
2019/08/17 Javascript
Vue实现点击当前元素以外的地方隐藏当前元素(实现思路)
2019/12/04 Javascript
VSCode launch.json配置详细教程
2020/06/18 Javascript
python使用BeautifulSoup分析网页信息的方法
2015/04/04 Python
Python中的rfind()方法使用详解
2015/05/19 Python
详解Python中表达式i += x与i = i + x是否等价
2017/02/08 Python
深入理解Python3中的http.client模块
2017/03/29 Python
python实现手机通讯录搜索功能
2018/02/22 Python
Python使用numpy实现BP神经网络
2018/03/10 Python
Selenium 模拟浏览器动态加载页面的实现方法
2018/05/16 Python
在Qt5和PyQt5中设置支持高分辨率屏幕自适应的方法
2019/06/18 Python
python中几种自动微分库解析
2019/08/29 Python
Python如何获取Win7,Win10系统缩放大小
2020/01/10 Python
python使用docx模块读写docx文件的方法与docx模块常用方法详解
2020/02/17 Python
python如何写出表白程序
2020/06/01 Python
宝拉珍选官方旗舰店:2%水杨酸精华液,收缩毛孔粗大和祛痘
2018/07/01 全球购物
广州喜创信息技术有限公司JAVA软件工程师笔试题
2012/10/17 面试题
护理专业自荐信
2013/12/03 职场文书
共产党员岗位承诺书
2014/05/29 职场文书
追悼会答谢词
2015/01/05 职场文书
2015年上半年信访工作总结
2015/03/30 职场文书
英语演讲开场白
2015/05/29 职场文书
Python3的进程和线程你了解吗
2022/03/16 Python