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 相关文章推荐
JS Array对象入门分析
Oct 30 Javascript
Javascript判断对象是否相等实现代码
Mar 18 Javascript
jQuery实现的动态伸缩导航菜单实例
May 07 Javascript
jquery点击缩略图切换视频播放特效代码分享
Sep 15 Javascript
java必学必会之static关键字
Dec 03 Javascript
javascript小数精度丢失的完美解决方法
May 31 Javascript
JS实现的自定义显示加载等待图片插件(loading.gif)
Jun 17 Javascript
浅析location.href跨窗口调用函数
Nov 22 Javascript
Bootstrap面板使用方法
Jan 16 Javascript
基于jQuery实现瀑布流页面
Apr 11 jQuery
JavaScript基于数组实现的栈与队列操作示例
Dec 22 Javascript
JavaScript中clientWidth,offsetWidth,scrollWidth的区别
Jan 25 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下MAIL的另一解决方案
2006/10/09 PHP
php实现监听事件
2013/11/06 PHP
php+MySQL实现登录时验证登录名和密码是否正确
2016/05/10 PHP
PHP Socket网络操作类定义与用法示例
2017/08/30 PHP
javascript 常用代码技巧大收集
2009/02/25 Javascript
js脚本获取webform服务器控件的方法
2014/05/16 Javascript
javascript中2个感叹号的用法实例详解
2014/09/04 Javascript
JQuery 使用attr方法实现下拉列表选中
2014/10/13 Javascript
node.js中的console.trace方法使用说明
2014/12/09 Javascript
jquery实现滑动特效代码
2015/08/10 Javascript
浅谈JavaScript 执行环境、作用域及垃圾回收
2016/05/31 Javascript
node.js入门学习之url模块
2017/02/25 Javascript
微信小程序 chooseImage选择图片或者拍照
2017/04/07 Javascript
JavaScript实现离开页面前提示功能【附jQuery实现方法】
2017/09/26 jQuery
JS倒计时两种实现方式代码实例
2020/07/27 Javascript
[01:13]2015国际邀请赛线下观战现场
2015/08/08 DOTA
Python3多进程 multiprocessing 模块实例详解
2018/06/11 Python
Python函数中不定长参数的写法
2019/02/13 Python
python 列表转为字典的两个小方法(小结)
2019/06/28 Python
django框架用户权限中的session缓存到redis中的方法
2019/08/06 Python
Python queue队列原理与应用案例分析
2019/09/27 Python
Python爬虫之urllib基础用法教程
2019/10/12 Python
Python实现搜索算法的实例代码
2020/01/02 Python
解决Python3.7.0 SSL低版本导致Pip无法使用问题
2020/09/03 Python
关于python scrapy中添加cookie踩坑记录
2020/11/17 Python
numba提升python运行速度的实例方法
2021/01/25 Python
浅析css3中matrix函数的使用
2016/06/06 HTML / CSS
某个公司的Java笔面试题
2016/03/11 面试题
应届生体育教师自荐信
2013/10/03 职场文书
道德模范先进事迹
2014/02/14 职场文书
创业大赛策划书
2014/03/01 职场文书
小学教师培训方案
2014/06/09 职场文书
毕业晚宴祝酒词
2015/08/11 职场文书
开网店计划分析
2019/07/30 职场文书
Maven学习----Maven安装与环境变量配置教程
2021/06/29 Java/Android
Golang Elasticsearches 批量修改查询及发送MQ
2022/04/19 Golang