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 相关文章推荐
精选的10款用于构建良好易用性网站的jQuery插件
Jan 23 Javascript
jQuery EasyUI API 中文文档 可调整尺寸
Sep 29 Javascript
纯js和css实现渐变色包括静态渐变和动态渐变
May 29 Javascript
jQuery获取DOM节点实例分析(2种方式)
Dec 15 Javascript
移动开发之自适应手机屏幕宽度
Nov 23 Javascript
Angularjs 事件指令详细整理
Jul 27 Javascript
谈谈对vue响应式数据更新的误解
Aug 01 Javascript
Angular 开发学习之Angular CLI的安装使用
Dec 31 Javascript
jQuery实现基本淡入淡出效果的方法详解
Sep 05 jQuery
微信小程序页面间跳转传参方式总结
Jun 13 Javascript
vue2.0 获取从http接口中获取数据,组件开发,路由配置方式
Nov 04 Javascript
js中script的上下放置区别,Dom的增删改创建操作实例分析
Dec 16 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
用mysql触发器自动更新memcache的实现代码
2009/10/11 PHP
PHP 变量的定义方法
2010/01/26 PHP
php 随机排序广告的实现代码
2011/05/09 PHP
如何使用PHP计算上一个月的今天
2013/05/23 PHP
php保存二进制原始数据为图片的程序代码
2014/10/14 PHP
浅谈php://filter的妙用
2019/03/05 PHP
微信公众平台开发教程③ PHP实现微信公众号支付功能图文详解
2019/04/10 PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
2019/04/23 PHP
Avengerls vs Newbee BO3 第二场2.18
2021/03/10 DOTA
用js计算页面执行时间的函数
2006/12/07 Javascript
js实现简单模态窗口,背景灰显
2008/11/14 Javascript
基于jQuery的合并表格中相同文本的相邻单元格的代码
2011/04/06 Javascript
跨域请求之jQuery的ajax jsonp的使用解惑
2011/10/09 Javascript
jQuery中 noConflict() 方法使用
2013/04/25 Javascript
JavaScript使用Prototype实现面向对象的方法
2015/04/14 Javascript
JavaScript创建闭包的两种方式的优劣与区别分析
2015/06/22 Javascript
JS中判断字符串中出现次数最多的字符及出现的次数的简单实例
2016/06/03 Javascript
基于vue.js实现图片轮播效果
2016/12/01 Javascript
Bootstrap基本组件学习笔记之按钮组(8)
2016/12/07 Javascript
fullCalendar中文API官方文档
2017/02/07 Javascript
微信小程序 聊天室简单实现
2017/04/19 Javascript
AngularJS实现表单验证功能详解
2017/10/12 Javascript
深入浅析var,let,const的异同点
2018/08/07 Javascript
vue2中使用sass并配置全局的sass样式变量的方法
2018/09/04 Javascript
vue 实现微信浮标效果
2019/09/01 Javascript
使用 UniApp 实现小程序的微信登录功能
2020/06/09 Javascript
python模拟登录百度代码分享(获取百度贴吧等级)
2013/12/27 Python
python遍历序列enumerate函数浅析
2017/10/17 Python
解决PyCharm import torch包失败的问题
2018/10/13 Python
Python实现KNN(K-近邻)算法的示例代码
2019/03/05 Python
Python实现Selenium自动化Page模式
2019/07/14 Python
使用Python实现牛顿法求极值
2020/02/10 Python
安全生产实施方案
2014/02/23 职场文书
三分钟演讲稿范文
2014/04/24 职场文书
2014年统计工作总结
2014/11/21 职场文书
SQL IDENTITY_INSERT作用案例详解
2021/08/23 MySQL