js实现无缝滚动图(可控制当前滚动的方向)


Posted in Javascript onFebruary 22, 2017

这个版本可以控制左右滚动,鼠标点击对应的广告会自动滑动把广告完全展示出来。还实现了记录当前滚动的方向,当鼠标离开,接着继续滚动!!!

效果图:

js实现无缝滚动图(可控制当前滚动的方向)

代码如下:

<!DOCTYPE html>
<html lang="en">
 <head>
 <meta charset="utf-8">
 <style type = "text/css">
 *{margin: 0; padding: 0;}
  li { list-style: none; }
  .box {
  width: 800px;
  height: 450px;
  margin: 50px auto;
  overflow: hidden; 
  position: relative;
  }
  .box span {
  width: 40px;
  height: 60px;  
  display: block;
  position: absolute;
  top: 225px;
  margin-top: -20px;
  cursor: pointer;
  z-index: 1;
  }
  .box #left {
 background: url('http://cdn.attach.qdfuns.com/notes/pics/201701/14/042311cbd7gbjd7sggkd2b.png') no-repeat;
 left: 0;
    display: none;
  }
  .box #right {
  background: url('http://cdn.attach.qdfuns.com/notes/pics/201701/14/042241w8z4hx4m4pjhyjzs.png') no-repeat;
  right: 0;
   display: none;
  }
  #ad {
  width: 4000px;
  height: 450px;
  position: absolute;
  }
  #ad li {
 float: left;
  }
 </style>
 <script type = "text/javascript">
  window.onload = function(){
  var ad = document.getElementById("ad");
  var lef = document.getElementById("left");
  var rig = document.getElementById("right");
  var timer = null; //管理定时器
 var aspect = true;
  function animate(obj,speed){
   //关闭上一个定时器
   clearInterval(obj.timer);
   //管理定时器
 obj.timer = setInterval(autoAd,30);
   function autoAd(){
   //判断左走或者右走
   if(speed > 0){
    aspect = true;
    if(obj.offsetLeft >= 0){
    obj.style.left = -3200 + 'px';
    }
 }else {
    aspect = false;
    if(obj.offsetLeft <= -3200){
    obj.style.left = 0;
    }
 }
   //匀速动画: 盒子当前的位置 + 步长
   obj.style.left = obj.offsetLeft + speed +"px";
   }
 }
 animate(ad,-5);
 //鼠标划入显示控制按钮并关闭
  ad.parentNode.onmouseover = function(){
   clearInterval(ad.timer);
 lef.style.display = "block";
   rig.style.display = "block";
 };
  //鼠标离开隐藏控制按钮并启动定时器
  ad.parentNode.onmouseout = function(){
   clearInterval(ad.timer);
   clearInterval(timer);
   lef.style.display = "none";
   rig.style.display = "none";
 if(aspect){
 animate(ad,5);
 }else{
 animate(ad,-5);
 }
  };
  ad.onclick = function(event){
   //关闭自动轮播定时器
   clearInterval(ad.timer);
   clearInterval(timer);
   var event = event || window.event;
 if(event.target){
   var target = - parseInt(event.target.alt) * 800;
 }else{
   var target = - parseInt(event.srcElement.alt) * 800;
 }
   timer = setInterval(function(){
   var step = (target - ad.offsetLeft) / 10;
   step = step > 0 ? Math.ceil(step):Math.floor(step);
   ad.style.left = ad.offsetLeft + step + "px";
   if(ad.offsetLeft%800 == 0){
    clearInterval(timer);
 }
 },20)
 }
  //右移动
  lef.onclick = function(){
   clearInterval(timer);
   animate(ad,5);
  };
  //左移动
  rig.onclick = function(){
   clearInterval(timer);
 animate(ad,-5);
 };
  }
 </script>
 </head>
 <body>
 <div class="box"> 
 <ul id="ad">
 <li><img src="http://cdn.attach.qdfuns.com/notes/pics/201701/14/042153lscsitwp7sszb6zs.jpg" alt="0"></li>
 <li><img src="http://cdn.attach.qdfuns.com/notes/pics/201701/14/042152pfbkbfe8vbtvulfu.jpg" alt="1"></li>
 <li><img src="http://cdn.attach.qdfuns.com/notes/pics/201701/14/042153u3jgn0ds43ndd3dz.jpg" alt="2"></li>
 <li><img src="http://cdn.attach.qdfuns.com/notes/pics/201701/14/042152juuohne22z60hbsb.jpg" alt="3"></li>
 <li><img src="http://cdn.attach.qdfuns.com/notes/pics/201701/14/042153lscsitwp7sszb6zs.jpg" alt="4"></li>
 </ul>
 <span id="left"></span>
 <span id="right"></span>
 </div>
 </body>
</html>

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
一个加密JavaScript的开源工具PACKER2.0.2
Nov 04 Javascript
基于MooTools的很有创意的滚动条时钟动画
Nov 14 Javascript
Javascript脚本实现静态网页加密实例代码
Nov 05 Javascript
IE中图片的onload事件无效问题和解决方法
Jun 06 Javascript
JavaScript对数字的判断与处理实例分析
Feb 02 Javascript
详解JavaScript的策略模式编程
Jun 24 Javascript
限制复选框最多选择项的实现代码
May 30 Javascript
jQuery网页定位导航特效实现方法
Dec 19 Javascript
轻松理解JavaScript闭包
Mar 14 Javascript
JavaScript实现跟随滚动缓冲运动广告框
Jul 15 Javascript
jQuery实现的中英文切换功能示例
Jan 11 jQuery
用webpack4开发小程序的实现方法
Jun 04 Javascript
vuejs2.0实现一个简单的分页示例
Feb 22 #Javascript
Angular.js与node.js项目里用cookie校验账户登录详解
Feb 22 #Javascript
js实现无缝滚动图
Feb 22 #Javascript
JavaScript实现二分查找实例代码
Feb 22 #Javascript
浅谈jquery拼接字符串效率比较高的方法
Feb 22 #Javascript
微信小程序  TLS 版本必须大于等于1.2问题解决
Feb 22 #Javascript
原生JS实现幻灯片
Feb 22 #Javascript
You might like
PHP Header用于页面跳转要注意的几个问题总结
2008/10/03 PHP
mysql总结之explain
2012/02/27 PHP
PHP中使用imagick生成PSD文件缩略图教程
2015/01/26 PHP
php的4种常用运行方式详解
2016/12/22 PHP
PHP date()格式MySQL中插入datetime方法
2019/01/29 PHP
JavaScript接口实现代码 (Interfaces In JavaScript)
2010/06/11 Javascript
12种不宜使用的Javascript语法整理
2013/11/04 Javascript
jQuery表格插件ParamQuery简单使用方法示例
2013/12/05 Javascript
JavaScript实现列出数组中最长的连续数
2014/12/29 Javascript
JavaScript检测上传文件大小的方法
2015/07/22 Javascript
值得分享和收藏的Bootstrap学习教程
2016/05/12 Javascript
基于JavaScript实现微信抢红包功能
2017/07/20 Javascript
js实现单张图片平移切换效果
2017/10/11 Javascript
记一次webapck4 配置文件无效的解决历程
2018/09/19 Javascript
JS原型prototype和__proto__用法实例分析
2020/03/14 Javascript
[41:41]TFT vs Secret Supermajor小组赛C组 BO3 第一场 6.3
2018/06/04 DOTA
Python加pyGame实现的简单拼图游戏实例
2015/05/15 Python
初步认识Python中的列表与位运算符
2015/10/12 Python
Python简单删除列表中相同元素的方法示例
2017/06/12 Python
基于python的Tkinter编写登陆注册界面
2017/06/30 Python
Python日志模块logging基本用法分析
2018/08/23 Python
Python中的Socket 与 ScoketServer 通信及遇到问题解决方法
2019/04/01 Python
Selenium+Python 自动化操控登录界面实例(有简单验证码图片校验)
2019/06/28 Python
Django之PopUp的具体实现方法
2019/08/31 Python
Django模板之基本的 for 循环 和 List内容的显示方式
2020/03/31 Python
使用Python操作MySQL的小技巧
2020/09/10 Python
Python绘制词云图之可视化神器pyecharts的方法
2021/02/23 Python
标签和贴纸印刷:Lightning Labels
2018/03/22 全球购物
工程力学专业毕业生求职信
2013/10/06 职场文书
新闻专业大学生找工作的自我评价
2013/10/30 职场文书
新教师培训方案
2014/06/08 职场文书
拾金不昧通报表扬范文
2015/05/05 职场文书
导游词之昭君岛
2020/01/17 职场文书
JavaScript嵌入百度地图API的最详细方法
2021/04/16 Javascript
mysql数据库入门第一步之创建表
2021/05/14 MySQL
JavaScript实现栈结构详细过程
2021/12/06 Javascript