jquery实现图片的左右滚动

就是这个部分的js。

html的部分:

<div class="thumbPic">
					<!-- 当鼠标滑向时 li上增加样式 hover -->
					<ul class="" style="width:1200px" id="smallPics">
						<li class="hover" ><img src="temp/pic_50x50_1.jpg" /></li>
						<li><img src="temp/pic_50x50_2.jpg" /></li>
						<li><img src="temp/pic_50x50_1.jpg" /></li>
						<li><img src="temp/pic_50x50_2.jpg" /></li>
						<li><img src="temp/pic_50x50_1.jpg" /></li>
						<li><img src="temp/pic_50x50_2.jpg" /></li>
						<li><img src="temp/pic_50x50_1.jpg" /></li>
						<li><img src="temp/pic_50x50_2.jpg" /></li>
						<li><img src="temp/pic_50x50_1.jpg" /></li>
					</ul>
				</div>
				<!-- 
					没有上一项和下一项 样式分别为thumbNoPrev thumbNoNext
					有上一页和下一项的样式为thumbPrev thumbNext 
					有上一页和下一项时鼠标指向的样式分别为thumbPrevHover  thumbNextHover
				-->
				<div class="thumbNoPrev" id="thumbPrev">向左</div>
				<div class="thumbNext" id="thumbNext">向右</div>
js的部分:

//左移
function moveLeft(obj,prevBtn,nextBtn){
	var _ul=$(obj).find("ul");
	var _li=$(obj).find("li");
	var rightLength=_li.eq(0).outerWidth(true);
	rightLength=$(obj).scrollLeft()-rightLength;
	$(obj).animate({scrollLeft:rightLength},{complete:function(){
		if(rightLength>0){
			nextBtn.addClass("thumbNext").removeClass("thumbNoNext");
		}else{
			prevBtn.addClass("thumbNoPrev").removeClass("thumbPrev");
		}
	},duration:400});
}
//右移
function moveRight(obj,prevBtn,nextBtn){
	var _ul=$(obj).find("ul");
	var _li=_ul.find("li");
	var rightLength=_li.eq(0).outerWidth(true);
	var lisLength=0;
	$(_li).each(function(){
		lisLength+=$(this).outerWidth(true);
	});
	var objWidth=$(obj).outerWidth(true);
	var ulPaddingLeft=parseInt(_ul.css("padding-left"));
	var pos=$(obj).scrollLeft()+rightLength;
	if(pos<lisLength-objWidth+ulPaddingLeft){
		$(obj).animate({scrollLeft:pos},{complete:function(){
			if($(obj).scrollLeft()+rightLength<lisLength-objWidth+ulPaddingLeft){
				prevBtn.addClass("thumbPrev").removeClass("thumbNoPrev");
			}else{
				nextBtn.addClass("thumbNoNext").removeClass("thumbNext");
			}
		},duration:400});
	}
	
	
}

调用js的部分:
	//初始化向右按钮样式
	if($("#smallPics >li").length>5){
		$("#thumbNext").addClass("thumbNext").removeClass("thumbNoNext");
	}else{
		$("#thumbNext").removeClass("thumbNext").addClass("thumbNoNext");
	}
	//向左
	$("#thumbPrev").click(function(){
		moveLeft($(".thumbPic"),$(this),$("#thumbNext"));
	});
	//向右
	$("#thumbNext").click(function(){
		moveRight(".thumbPic",$("#thumbPrev"),$(this));
	});


css的部分就不写了,大家根据自己的样式写一下就好了。特别注意,那个ul一定要设很宽的宽度,要不然li内容多了就折行了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值