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分别取得每行最后一列和最后一行的示例代码
Aug 18 Javascript
node.js中的console.warn方法使用说明
Dec 09 Javascript
javascript实现字符串反转的方法
Feb 05 Javascript
利用JS实现点击按钮后图片自动切换的简单方法
Oct 24 Javascript
Angularjs为ng-click事件传递参数
Jun 15 Javascript
微信通过页面(H5)直接打开本地app的解决方法
Sep 09 Javascript
在vue中更换字体,本地存储字体非引用在线字体库的方法
Sep 28 Javascript
es6中new.target的作用和使用场景简单示例分析
Mar 14 Javascript
如何实现echarts markline标签名显示自己想要的
Jul 20 Javascript
在vue中实现嵌套页面(iframe)
Jul 30 Javascript
解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)
Oct 27 Javascript
使用vue判断当前环境是安卓还是IOS
Apr 12 Vue.js
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
浅析虚拟主机服务器php fsockopen函数被禁用的解决办法
2013/08/07 PHP
php+mysqli预处理技术实现添加、修改及删除多条数据的方法
2015/01/30 PHP
PHP解压ZIP文件到指定文件夹的方法
2016/11/17 PHP
PHP输出多个元素的排列或组合的方法
2017/03/14 PHP
JavaScript prototype对象的属性说明
2010/03/13 Javascript
再论Javascript下字符串连接的性能
2011/03/05 Javascript
jQuery获取注册信息并提示实现代码
2013/04/21 Javascript
JS实现点击下载的小例子
2013/07/10 Javascript
JS操作JSON要领详细总结
2013/08/25 Javascript
jquery提交form表单简单示例分享
2014/03/03 Javascript
JS实现弹出浮动窗口(支持鼠标拖动和关闭)实例详解
2015/08/06 Javascript
JS遍历数组及打印数组实例分析
2016/01/21 Javascript
js中最容易被忽视的事件问题大总结
2016/05/15 Javascript
JavaScript构建自己的对象示例
2016/11/29 Javascript
js实现百度地图定位于地址逆解析,显示自己当前的地理位置
2016/12/08 Javascript
vue-router跳转页面的方法
2017/02/09 Javascript
AngularJS路由切换实现方法分析
2017/03/17 Javascript
Vue头像处理方案小结
2018/07/26 Javascript
通过vue刷新左侧菜单栏操作
2020/08/06 Javascript
在vue项目中 实现定义全局变量 全局函数操作
2020/10/26 Javascript
python抓取京东价格分析京东商品价格走势
2014/01/09 Python
Python的爬虫程序编写框架Scrapy入门学习教程
2016/07/02 Python
Python基于PyGraphics包实现图片截取功能的方法
2017/12/21 Python
Python3多线程版TCP端口扫描器
2019/08/31 Python
jupyter修改文件名方式(TensorFlow)
2020/04/21 Python
Python pandas 列转行操作详解(类似hive中explode方法)
2020/05/18 Python
Python 通过爬虫实现GitHub网页的模拟登录的示例代码
2020/08/17 Python
python自动提取文本中的时间(包含中文日期)
2020/08/31 Python
悦木之源美国官网:Origins美国
2016/08/01 全球购物
天猫国际进口超市直营:官方直采,一站购齐
2017/12/11 全球购物
美国在线和移动免费会员制批发零售商:Boxed(移动端的Costco)
2020/01/02 全球购物
通信工程专业毕业生推荐信
2013/12/25 职场文书
六一亲子活动总结
2014/07/01 职场文书
创先争优宣传标语
2014/10/08 职场文书
节水宣传标语口号
2015/12/26 职场文书
python3.7.2 tkinter entry框限定输入数字的操作
2021/05/22 Python