jQuery实现的无缝广告图片左右滚动功能详解


Posted in Javascript onDecember 24, 2016

本文实例讲述了jQuery实现的无缝广告图片左右滚动功能。分享给大家供大家参考,具体如下:

先是写了一个此功能的jQuery插件,但是一时写不出如何使用鼠标进行滚动方向的切换,于是又写了另一个可以实现切换的版本...

原理:

1.把滚动的内容复制2份放到原内容左右,这样无论向左右滚动都不会出现断掉的情况

2.改变内容样式的left值实现滚动效果,向左或向右滚动一个内容的长度后,还原并继续滚动,这样看起来就像无缝一直滚动的样子了(视觉上的效果,^_^)

3.鼠标放上去则clearInterval,移开后继续setInterval

4.移动效果写成一个方法,切换方向时调用一次即可

<style>
* { margin:0; padding:0;}
ul { list-style:none; margin:0; padding:0;}
img { border:none;}
.bar {
  margin:0 auto;
  width:800px; height:48px; overflow:hidden;
  line-height:48px; border:2px solid #EEE;}
.bar a.a_left,
.bar a.a_right{
  float:left;
  width:11px; height:48px;
  background:url(a_left.png) no-repeat left center;}
.bar a.a_right { float:right; background-image:url(a_right.png);}
.bar_wrap { float:left; position:relative; width:776px; height:48px; white-space:nowrap; overflow:hidden;}
.bar_inner { position:relative; height:48px; line-height:48px; left:0; width:2880px; white-space:nowrap;}
.bar_inner ul { height:48px; overflow:hidden; float:left; width:960px;}
.bar_inner ul li{ float:left;}
.bar_inner ul li a{ padding:0 16px; display:block; height:48px; line-height:48px;}
</style>
<body>
<div class="bar">
  <a href="#" class="a_left"></a>
  <div class="bar_wrap">
  <div class="bar_inner">
    <ul>
      <li><a href="#" title="" ><img src="pic.png" alt="" /></a></li>
      <li><a href="#" title="" ><img src="pic.png" alt="" /></a></li>
      <li><a href="#" title="" ><img src="pic.png" alt="" /></a></li>
      <li><a href="#" title="" ><img src="pic.png" alt="" /></a></li>
      <li><a href="#" title="" ><img src="pic.png" alt="" /></a></li>
      <li><a href="#" title="" ><img src="pic.png" alt="" /></a></li>
      <li><a href="#" title="" ><img src="pic.png" alt="" /></a></li>
      <li><a href="#" title="" ><img src="pic.png" alt="" /></a></li>
      <li><a href="#" title="" ><img src="pic.png" alt="" /></a></li>
      <li><a href="#" title="" ><img src="pic.png" alt="" /></a></li>
    </ul>  </div>
  </div>
  <a href="#" class="a_right"></a>
</div>
var scrollBar = function(){
  this.step = 14;
  this.speed = 100;
  this.inner = $(".bar_inner");
  this.wrap = $(".bar_wrap");
  this.ini = 0;
  this.pos = "l";
  this.s ;
  }
scrollBar.prototype = {
  check : function(){
    return this.inner.width() < this.wrap.width() ? false : true;
    } ,
  init : function(){
    if( this.check() ){
      this.inner
        .html( this.inner.html() + this.inner.html() + this.inner.html() )
        .css("left",- this.inner.width()/3 + "px");
      }
    },
  run : function(pos){
    if (! this.check()){ return;}
    if( this.ini == 0) {this.init();}
    this.ini = 1;
    this.pos = pos;
    var that = this;
    var f = function(){
      if(that.pos == "l"){
        var l = parseInt( that.inner.css("left") ) - that.step;
        that.inner.css("left",l + "px");
        //console.log(l);
        if ( parseInt(that.inner.css("left")) <= -( that.inner.width()/ 3 * 2) ){
          that.inner.css("left",- that.inner.width() /3 + "px");
          }
        }
      else {
        var l = parseInt( that.inner.css("left") ) + that.step;
        that.inner.css("left",l + "px");
        //console.log( l );
        if( parseInt(that.inner.css("left")) >= 0 ){
          that.inner.css("left", - that.inner.width()/3 + "px");
          }
        }
      }
    if(this.s) {clearInterval(that.s);};
    this.s = setInterval( f ,that.speed);
    that.inner.hover(
      function(){ clearInterval(that.s);},
      function(){clearInterval(that.s); that.s = setInterval( f ,that.speed); }
      )
    }
  }
var s = new scrollBar();
s.run("r");
$(".a_left").mouseover(function(){
  clearInterval( s.s);
  s.run("l");
  })
$(".a_right").mouseover(function(){
     clearInterval( s.s);
  s.run("r");
})

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
基于jquery的点击链接插入链接内容的代码
Jul 31 Javascript
Javascript的严格模式strict mode详细介绍
Jun 06 Javascript
JS模拟并美化的表单控件完整实例
Aug 19 Javascript
jquery实现平滑的二级下拉菜单效果
Aug 26 Javascript
原生js实现图片轮播特效
Dec 18 Javascript
angularjs表格分页功能详解
Jan 21 Javascript
localStorage实现便签小程序
Nov 28 Javascript
Javascript自定义事件详解
Jan 13 Javascript
Angular2中select用法之设置默认值与事件详解
May 07 Javascript
javascript获取select值的方法完整实例
Jun 20 Javascript
layui复选框的全选与取消实现方法
Sep 02 Javascript
在weex中愉快的使用scss的方法步骤
Jan 02 Javascript
浅析BootStrap中Modal(模态框)使用心得
Dec 24 #Javascript
纯JS实现表单验证实例
Dec 24 #Javascript
jQuery实现加入收藏夹功能(主流浏览器兼职)
Dec 24 #Javascript
JS绘制微信小程序画布时钟
Dec 24 #Javascript
jQuery弹出窗口打开链接的实现代码
Dec 24 #Javascript
DropDownList控件绑定数据源的三种方法
Dec 24 #Javascript
Bootstrap源码学习笔记之bootstrap进度条
Dec 24 #Javascript
You might like
一款简单实用的php操作mysql数据库类
2014/12/08 PHP
利用php的ob缓存机制实现页面静态化方法
2017/07/09 PHP
javascript之可拖动的iframe效果代码
2008/08/01 Javascript
jQuery获取CSS样式中的颜色值的问题,不同浏览器格式不同的解决办法
2013/05/13 Javascript
JS onmousemove鼠标移动坐标接龙DIV效果实例
2013/12/16 Javascript
使用JQuery库提供的扩展功能实现自定义方法
2014/09/09 Javascript
Javascript实现Web颜色值转换
2015/02/05 Javascript
在easyUI开发中,出现jquery.easyui.min.js函数库问题的解决办法
2015/09/11 Javascript
Markdown+Bootstrap图片自适应属性详解
2016/05/21 Javascript
jquery UI Datepicker时间控件冲突问题解决
2016/12/16 Javascript
原生node.js案例--前后台交互
2017/02/20 Javascript
angular动态删除ng-repaeat添加的dom节点的方法
2017/07/20 Javascript
基于Node.js模板引擎教程-jade速学与实战1
2017/09/17 Javascript
JS实现的文字间歇循环滚动效果完整示例
2018/02/13 Javascript
JavaScript实现读取与输出XML文件数据的方法示例
2018/06/05 Javascript
Next.js项目实战踩坑指南(笔记)
2018/11/29 Javascript
javascript 内存模型实例详解
2020/04/18 Javascript
JavaScript实现像雪花一样的Hexaflake分形
2020/07/07 Javascript
[15:39]教你分分钟做大人:龙骑士
2014/10/30 DOTA
python中的hashlib和base64加密模块使用实例
2014/09/02 Python
Collatz 序列、逗号代码、字符图网格实例
2017/06/22 Python
opencv python 傅里叶变换的使用
2018/07/21 Python
使用Python横向合并excel文件的实例
2018/12/11 Python
详解安装mitmproxy以及遇到的坑和简单用法
2019/01/21 Python
Python高级编程之继承问题详解(super与mro)
2019/11/19 Python
keras 回调函数Callbacks 断点ModelCheckpoint教程
2020/06/18 Python
python tkinter实现下载进度条及抖音视频去水印原理
2021/02/07 Python
Scholastic父母商店:儿童书籍
2017/01/01 全球购物
寻找完美的房车租赁:RVShare
2019/02/23 全球购物
美国波西米亚风格精品店:South Moon Under
2019/10/26 全球购物
Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
2015/01/27 面试题
庆六一宣传标语
2014/10/08 职场文书
2015年行政助理工作总结
2015/04/30 职场文书
起诉书范文
2015/05/20 职场文书
关于观后感的作文
2015/06/18 职场文书
六一儿童节致辞稿(3篇)
2019/07/11 职场文书