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

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

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

原理:

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

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

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

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

* { 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;}

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程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用jquery的animate()函数实现图片横向滚动效果,具体实现步骤如下: 1. HTML结构:使用ul和li标签实现图片列表,并添加左右按钮。 ``` <div class="scroll-container"> <ul class="scroll-list"> <li><img src="image1.jpg"></li> <li><img src="image2.jpg"></li> <li><img src="image3.jpg"></li> <li><img src="image4.jpg"></li> </ul> <div class="scroll-btn scroll-btn-left"></div> <div class="scroll-btn scroll-btn-right"></div> </div> ``` 2. CSS样式:设置容器的宽度和高度,并使图片横向排列。 ``` .scroll-container { position: relative; width: 600px; height: 300px; overflow: hidden; } .scroll-list { position: absolute; top: 0; left: 0; width: 9999px; height: 300px; overflow: hidden; white-space: nowrap; } .scroll-list li { display: inline-block; width: 600px; height: 300px; } ``` 3. JS代码:给左右按钮添加点击事件,通过animate()函数实现图片的横向滚动。 ``` $(function(){ var $scrollList = $('.scroll-list'); var $scrollItem = $('.scroll-list li'); var itemWidth = $scrollItem.outerWidth(true); var scrollWidth = itemWidth * $scrollItem.length; var leftPos = $scrollList.position().left; var minPos = - (scrollWidth - $scrollList.parent().width()); $('.scroll-btn-left').click(function(){ if (leftPos < 0) { leftPos += itemWidth; $scrollList.animate({left: leftPos + 'px'}, 500); } }); $('.scroll-btn-right').click(function(){ if (leftPos > minPos) { leftPos -= itemWidth; $scrollList.animate({left: leftPos + 'px'}, 500); } }); }); ``` 以上代码实现了点击左右按钮图片横向滚动效果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值