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 学习技巧
Feb 17 Javascript
关于jquery.validate1.9.0前台验证的使用介绍
Apr 26 Javascript
判断某个字符在一个字符串中是否存在的js代码
Feb 28 Javascript
轮播图组件js代码
Aug 08 Javascript
jquery层级选择器(匹配父元素下的子元素实现代码)
Sep 05 Javascript
js仿搜狐视频记录片列表展示效果
May 30 Javascript
JS实现十字坐标跟随鼠标效果
Dec 25 Javascript
深入理解JavaScript的async/await
Aug 05 Javascript
JS实现获取毫秒值及转换成年月日时分秒的方法
Aug 15 Javascript
Layui数据表格之获取表格中所有的数据方法
Aug 20 Javascript
js正则取值的结果数组调试方法
Oct 10 Javascript
iview在vue-cli3如何按需加载的方法
Oct 31 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
php使用cookie实现记住用户名和密码实现代码
2015/04/27 PHP
PHP如何使用Memcached
2016/04/05 PHP
Yii2.0多文件上传实例说明
2017/07/24 PHP
php命名空间设计思想、用法与缺点分析
2019/07/17 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
2020/05/02 PHP
论坛特效代码收集(落伍转发-不错)
2006/12/02 Javascript
开发跨浏览器javascript常见注意事项
2009/01/01 Javascript
javascript 禁止复制网页
2009/06/11 Javascript
javascript判断iphone/android手机横竖屏模式的函数
2011/12/20 Javascript
用最通俗易懂的代码帮助新手理解javascript闭包 推荐
2012/03/01 Javascript
javascript ready和load事件的区别示例介绍
2013/08/30 Javascript
JavaScript实现广告的关闭与显示效果实例
2015/07/02 Javascript
设置点击文本框或图片弹出日历控件的实现代码
2016/05/12 Javascript
JS简单实现DIV相对于浏览器固定位置不变的方法
2016/06/17 Javascript
AngularJS实现星星等级评分功能
2016/09/24 Javascript
为什么使用koa2搭建微信第三方公众平台的原因
2018/05/16 Javascript
vue组件实现进度条效果
2018/06/06 Javascript
详解js中的几种常用设计模式
2020/07/16 Javascript
详解在Python中处理异常的教程
2015/05/24 Python
Python自动化测试ConfigParser模块读写配置文件
2016/08/15 Python
Python实现两个list求交集,并集,差集的方法示例
2018/08/02 Python
对python requests的content和text方法的区别详解
2018/10/11 Python
python飞机大战pygame游戏之敌机出场实现方法详解
2019/12/17 Python
python实现异常信息堆栈输出到日志文件
2019/12/26 Python
Tensorflow tf.nn.atrous_conv2d如何实现空洞卷积的
2020/04/20 Python
python中scrapy处理项目数据的实例分析
2020/11/22 Python
Dodax奥地利:音乐、电影、书籍、玩具、电子产品等
2019/08/31 全球购物
计算机应用专业毕业生求职信
2013/10/24 职场文书
开办加工厂创业计划书
2014/01/03 职场文书
生产操作工岗位职责
2014/09/16 职场文书
校园运动会广播稿
2014/10/06 职场文书
公司劳动纪律管理制度
2015/08/04 职场文书
小学生班干部竞选稿
2015/11/20 职场文书
神州牡丹园的导游词
2019/11/20 职场文书
浅谈mysql返回Boolean类型的几种情况
2021/06/04 MySQL
MySQL8.0 Undo Tablespace管理详解
2022/06/16 MySQL