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脚本实现Web页面信息交互
Oct 11 Javascript
JavaScript Event学习第四章 传统的事件注册模型
Feb 07 Javascript
始终在屏幕中间显示Div的代码(css+js)
Mar 10 Javascript
javascript制作网页图片上实现下雨效果
Feb 26 Javascript
整理JavaScript创建对象的八种方法
Nov 03 Javascript
jQuery Mobile操作HTML5的常用函数总结
May 17 Javascript
bootstrap输入框组代码分享
Jun 07 Javascript
jquery实现楼层滚动效果
Jan 01 jQuery
layui的table中显示图片方法
Aug 17 Javascript
vue + axios get下载文件功能
Sep 25 Javascript
基于JavaScript实现单例模式
Oct 30 Javascript
quickjs 封装 JavaScript 沙箱详情
Nov 02 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数组一对一替换实现代码
2012/08/31 PHP
PHP可逆加密/解密函数分享
2012/09/25 PHP
php用户注册信息验证正则表达式
2015/11/12 PHP
jscript之Open an Excel Spreadsheet
2007/06/13 Javascript
Javascript中Eval函数的使用说明
2008/10/11 Javascript
cnblogs 代码高亮显示后的代码复制问题解决实现代码
2011/12/14 Javascript
利用JQuery和JS实现奇偶行背景颜色自定义效果
2012/11/19 Javascript
编写简单的jQuery提示插件
2014/12/21 Javascript
js使用DOM操作实现简单留言板的方法
2015/04/10 Javascript
JavaScript中的substr()方法使用详解
2015/06/06 Javascript
jQuery满屏焦点图左右滚动特效代码分享
2015/09/07 Javascript
基于MVC4+EasyUI的Web开发框架形成之旅之界面控件的使用
2015/12/16 Javascript
jQuery文字提示与图片提示效果实现方法
2016/07/04 Javascript
JavaScript暂停和继续定时器的实现方法
2016/07/18 Javascript
总结在前端排序中遇到的问题
2016/07/19 Javascript
使用vue.js2.0 + ElementUI开发后台管理系统详细教程(一)
2017/01/21 Javascript
jquery代码规范让代码越来越好看
2017/02/03 Javascript
原生js实现可拖拽效果
2017/02/28 Javascript
基于vue实现多引擎搜索及关键字提示
2017/03/16 Javascript
Bootstrap fileinput文件上传预览插件使用详解
2017/05/16 Javascript
jQuery鼠标移动图片上实现放大效果
2017/06/25 jQuery
AngularJs+Bootstrap实现漂亮的计算器
2017/08/10 Javascript
Vue 进入/离开动画效果
2017/12/26 Javascript
微信小程序的mpvue框架快速上手指南
2019/05/15 Javascript
JS实现点击发送验证码 xx秒后重新发送功能
2019/07/30 Javascript
Layui Table js 模拟选中checkbox的例子
2019/09/03 Javascript
nuxt 实现在其它js文件中使用store的方式
2020/11/05 Javascript
[01:08:24]DOTA2-DPC中国联赛 正赛 RNG vs Phoenix BO3 第一场 2月5日
2021/03/11 DOTA
Python元字符的用法实例解析
2018/01/17 Python
Python实现求解括号匹配问题的方法
2018/04/17 Python
请用Java实现列出某个目录下的所有文件
2013/09/23 面试题
爱国卫生月实施方案
2014/02/21 职场文书
学雷锋志愿者活动方案
2014/08/21 职场文书
校长四风对照检查材料
2014/09/27 职场文书
房屋租赁委托书范本
2014/10/04 职场文书
Linux下使用C语言代码搭建一个简单的HTTP服务器
2022/04/13 Servers