javascript实现的左右无缝滚动效果


Posted in Javascript onSeptember 19, 2016

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

前面介绍过图片左右滚动,不过图片是间歇性的一张一张滚动,今天介绍的是几张图片一起进行无缝滚动,这是一个常用的 js 效果。

<!DOCTYPE HTML>
<html lang="en-US">
<head>
  <meta charset="UTF-8">
  <title>无缝滚动——左右</title>
  <link rel="stylesheet" type="text/css" href="../css/base.css" media="all"/>
  <style type="text/css">
  #scroll{width:698px;height:108px;margin:50px auto 0;position:relative;overflow:hidden;}
  .btn_left{display:block;width:68px;height:68px;background:url(images/btn.jpg) no-repeat -70px -69px;position:absolute;top:20px;left:1px;z-index:1;}
  .btn_left:hover{background:url(images/btn.jpg) no-repeat -70px 0;}
  .btn_right{display:block;width:68px;height:68px;background:url(images/btn.jpg) no-repeat 1px -69px;position:absolute;top:20px;right:0;z-index:1;}
  .btn_right:hover{background:url(images/btn.jpg) no-repeat 1px 0;}
  #scroll .content{width:546px;height:108px;position:relative;overflow:hidden;margin:0 auto;}
  #scroll ul{position:absolute;}
  #scroll li{float:left;width:182px;height:108px;text-align:center;}
  #scroll li a:hover{position:relative;top:2px;}
  </style>
</head>
<body>
  <div id="scroll">
    <a href="javascript:;" class="btn_left"></a>
    <a href="javascript:;" class="btn_right"></a>
    <div class="content">
      <ul>
        <li><a href="#"><img src="images/1.jpg" width="178" height="108" alt=""/></a></li>
        <li><a href="#"><img src="images/2.jpg" width="178" height="108" alt=""/></a></li>
        <li><a href="#"><img src="images/3.jpg" width="178" height="108" alt=""/></a></li>
        <li><a href="#"><img src="images/4.jpg" width="178" height="108" alt=""/></a></li>
      </ul>
    </div>
  </div>
</body>
</html>
<script type="text/javascript">
window.onload = function(){
  var oDiv = document.getElementById('scroll');
  var oUl = oDiv.getElementsByTagName('ul')[0];
  var aLi = oDiv.getElementsByTagName('li');
  var aBtn = oDiv.getElementsByTagName('a');
  var speed = -1;
  var timer = null;
  oUl.innerHTML += oUl.innerHTML;
  oUl.style.width = aLi[0].offsetWidth * aLi.length + 'px';
  timer = setInterval(function(){
    oUl.style.left = oUl.offsetLeft + speed + 'px';
    if(oUl.offsetLeft < - oUl.offsetWidth / 2){
      oUl.style.left = '0';
    }else if(oUl.offsetLeft > 0){
      oUl.style.left = - oUl.offsetWidth / 2 + 'px';
    }
  },30);
  aBtn[0].onclick = function(){
    speed = -1;
  };
  aBtn[1].onclick = function(){
    speed = 1;
  };
  oUl.onmouseover = function(){
    clearInterval(timer);
  };
  oUl.onmouseout = function(){
    timer = setInterval(function(){
      oUl.style.left = oUl.offsetLeft + speed + 'px';
      if(oUl.offsetLeft < -oUl.offsetWidth / 2){
        oUl.style.left = '0';
      }else if(oUl.offsetLeft > 0){
        oUl.style.left = - oUl.offsetWidth / 2 + 'px';
      }
    },30);
  };
};
</script>

PS:如果想要改变移动速度,只需要改变 speed 的值。

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

Javascript 相关文章推荐
jQuery 选择器理解
Mar 16 Javascript
基于jQuery的动态表格插件
Mar 28 Javascript
JS上传图片预览插件制作(兼容到IE6)
Aug 07 Javascript
轻松掌握JavaScript中介者模式
Aug 26 Javascript
微信小程序 wx.request(object) API详解及实例代码
Sep 30 Javascript
新手学习前端之js模仿淘宝主页网站
Oct 31 Javascript
js如何判断是否在iframe中及防止网页被别站用iframe嵌套
Jan 11 Javascript
jquery实现数字输入框
Feb 22 Javascript
js实现华丽的九九乘法表效果
Mar 29 Javascript
ES6实现的遍历目录函数示例
Apr 07 Javascript
vue-router的HTML5 History 模式设置
Sep 08 Javascript
webgl实现物体描边效果的方法介绍
Nov 27 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
vuejs在解析时出现闪烁的原因及防止闪烁的方法
Sep 19 #Javascript
javascript 判断页面访问方式电脑或者移动端
Sep 19 #Javascript
You might like
Laravel最佳分割路由文件(routes.php)的方式
2016/08/04 PHP
PHP+mysql+ajax轻量级聊天室实现方法详解
2016/10/17 PHP
dropdownlist之间的互相联动实现(显示与隐藏)
2009/11/24 Javascript
JavaScript起点(严格模式深度了解)
2013/01/28 Javascript
JavaScript NodeTree导航栏(菜单项JSON类型/自制)
2013/02/01 Javascript
jQuery去掉字符串起始和结尾的空格(多种方法实现)
2013/04/01 Javascript
JS网页播放声音实现代码兼容各种浏览器
2013/09/22 Javascript
你未必知道的JavaScript和CSS交互的5种方法
2014/04/02 Javascript
浅谈javascript中call()、apply()、bind()的用法
2015/04/20 Javascript
ECMAScript6块级作用域及新变量声明(let)
2015/06/12 Javascript
基于jQuery仿淘宝产品图片放大镜代码分享
2020/06/23 Javascript
JavaScript缓冲运动实现方法(2则示例)
2016/01/08 Javascript
vue-router实现webApp切换页面动画效果代码
2017/05/25 Javascript
使用Node.js搭建静态资源服务详细教程
2017/08/02 Javascript
vue+socket.io+express+mongodb 实现简易多房间在线群聊示例
2017/10/21 Javascript
vue实现动态显示与隐藏底部导航的方法分析
2019/02/11 Javascript
layui table去掉右侧滑动条的实现方法
2019/09/05 Javascript
解决vue组件中click事件失效的问题
2019/11/09 Javascript
Vue常用传值方式、父传子、子传父及非父子实例分析
2020/02/24 Javascript
[03:18]DOTA2亚洲邀请赛小组赛第一日 RECAP赛事回顾
2015/01/30 DOTA
用Python编写web API的教程
2015/04/30 Python
深入理解Python中各种方法的运作原理
2015/06/15 Python
利用python如何处理百万条数据(适用java新手)
2018/06/06 Python
Python中的枚举类型示例介绍
2019/01/09 Python
python实现AES加密解密
2019/03/28 Python
Python 改变数组类型为uint8的实现
2020/04/09 Python
基于SpringBoot构造器注入循环依赖及解决方式
2020/04/26 Python
Python中的Cookie模块如何使用
2020/06/04 Python
Python进行统计建模
2020/08/10 Python
Python Opencv实现单目标检测的示例代码
2020/09/08 Python
CSS3 仿微信聊天小气泡实例代码
2017/04/05 HTML / CSS
泰国办公用品购物网站:OfficeMate
2018/02/04 全球购物
人力资源管理专业毕业生自我评价
2013/09/21 职场文书
家佳咖啡店创业计划书
2013/12/27 职场文书
小学科学教学反思
2014/01/26 职场文书
MongoDB安装使用并实现Python操作数据库
2021/06/28 MongoDB