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 相关文章推荐
JavaScript 字符串连接性能优化
Dec 20 Javascript
统计出现最多的字符次数的js代码
Dec 03 Javascript
JS随机打乱数组的方法小结
Jun 22 Javascript
Three.js如何用轨迹球插件(trackball)增加对模型的交互功能详解
Sep 25 Javascript
微信小程序 循环及嵌套循环的使用总结
Sep 26 Javascript
微信web端后退强制刷新功能的实现代码
Mar 04 Javascript
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
Aug 28 jQuery
JavaScript实现的鼠标跟随特效示例【2则实例】
Dec 22 Javascript
vue实现动态显示与隐藏底部导航的方法分析
Feb 11 Javascript
关于layui表单中按钮自动提交的解决方法
Sep 09 Javascript
微信小程序swiper组件实现抖音翻页切换视频功能的实例代码
Jun 24 Javascript
js不常见操作运算符总结
Nov 20 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
杏林同学录(一)
2006/10/09 PHP
PHP操作Memcache实例介绍
2013/06/14 PHP
ThinkPHP3.2.2实现持久登录(记住我)功能的方法
2016/05/16 PHP
thinkphp分页集成实例
2017/07/24 PHP
Google 静态地图API实现代码
2010/11/19 Javascript
常用Extjs工具:Extjs.util.Format使用方法
2012/03/22 Javascript
简单常用的幻灯片播放实现代码
2013/09/25 Javascript
js使下拉列表框可编辑不止是选择
2013/12/12 Javascript
js实现遮罩层弹出框的方法
2015/01/15 Javascript
js计算任意值之间随机数的方法
2015/01/16 Javascript
jquery中EasyUI实现异步树
2015/03/01 Javascript
第八篇Bootstrap下拉菜单实例代码
2016/06/21 Javascript
jQuery插件passwordStrength密码强度指标详解
2016/06/24 Javascript
BootStrap按钮标签及基本样式
2016/11/23 Javascript
nodejs中使用HTTP分块响应和定时器示例代码
2017/03/19 NodeJs
基于Vue实现页面切换左右滑动效果
2020/06/29 Javascript
JavaScript实现封闭区域布尔运算的示例代码
2018/06/25 Javascript
vue pages 多入口项目 + chainWebpack 全局引用缩写说明
2020/09/21 Javascript
Python连接DB2数据库
2016/08/27 Python
python 计算数组中每个数字出现多少次--“Bucket”桶的思想
2017/12/19 Python
python中return的返回和执行实例
2019/12/24 Python
Python sqlite3查询操作过程解析
2020/02/20 Python
Python参数传递实现过程及原理详解
2020/05/14 Python
Python爬虫之Selenium中frame/iframe表单嵌套页面
2020/12/04 Python
利用css3-animation实现逐帧动画效果
2016/03/10 HTML / CSS
CSS3 实现童年的纸飞机
2019/05/05 HTML / CSS
10种CSS3实现的loading动画,挑一个走吧?
2020/11/16 HTML / CSS
用HTML5制作数字时钟的教程
2015/05/11 HTML / CSS
T3官网:头发造型工具
2019/12/26 全球购物
美国在线面料商店:Fashion Fabrics Club
2020/01/31 全球购物
安全生产目标责任书
2014/04/14 职场文书
煤矿安全保证书
2015/02/27 职场文书
2015年安全教育月活动总结
2015/03/26 职场文书
会议主持词开场白
2015/05/28 职场文书
费城故事观后感
2015/06/10 职场文书
公司员工违法违章行为检讨书
2019/06/24 职场文书