js图片滑动切换效果

最近遇到需要图片滑动切换的效果纠结了好久,终于弄出了一个简单的效果。

图片切换的原理一般来说可以分为两种,一种是利用position:absolute;top或left来显示需要的图片,其他图片隐藏。

另一种是通过opacity来调节透明度,让需要的图片不透明,其他图片透明。

下面来看看我的实现吧!

HTML代码:

<div class="col-md-3">
	<ul class="person-ul" id="personImg">
		<li><a href="#"><img class="img" src="../image/img1.jpg"></a></li>
		<li><a href="#"><img class="img" src="../image/img2.jpg"></a></li>
		<li><a href="#"><img class="img" src="../image/img3.jpg"></a></li>
		<li><a href="#"><img class="img" src="../image/img4.jpg"></a></li>
	</ul>
	<ul class="person-num" id="imgNum"></ul>
</div>

CSS样式:

#person .col-md-3{
	height:270px;
	overflow:hidden;
	padding:0;
}

.person-ul{
	list-style-type:none;
	margin:0;
	padding:0;
	float:left;
	position: absolute;
	top:0;
	left:0;
}
.person-ul>li{
	height:270px;
	width:100%;
	
}
#imgNum .on{
	width:20px;
	height:20px;
	line-height:20px!important;
	font-weight:bold;
	background-color: #BCC029;
}
.person-num{
	position: absolute;
	right:25px;
	height:22px;
	margin:0;
	top:225px;
}
.person-num>li{
	float: left;
	list-style: none;
	color: #fff;
	text-align: center;
	line-height: 16px;
	width: 16px;
	height: 16px;
	font-family: Arial;
	font-size: 12px;
	cursor: pointer;
	margin: 1px;
	border: 1px solid #707070;
	background-color: #995B5B;
}

JS实现:

$(function(){
	//图片切换
	var imgList = $("#personImg li"); //获取图片对象
	var liNum = imgList.length;//获取图片数
	if(liNum>0){
		for(var i=0;i<liNum;i++){//添加数字选择栏
			if(i==0){
				$("#imgNum").append('<li class="on">'+(i+1)+'</li>');
			}else{
				$("#imgNum").append("<li>"+(i+1)+"</li>");
			}
		}
	}
	//定时器
	var interval = setInterval(function(){
		var current = $("#imgNum .on");//获取当前被选中的数字对象
		var index = parseInt(current.text());//获取选中的图片的数字
		var numList =  $("#imgNum li");	//获取数字数组对象,是一个dom数组
		current.removeClass("on");//移除已选择的数字样式
		if(index<liNum){//设置新数字的选择样式
			numList[index].className="on";
			changImg(index,liNum);
		}else{
			numList[0].className="on";
			changImg(0,liNum);
		}
	},5000);
	
	//图片切换操作
	$("#imgNum li").click(function(){
		$(".on").removeClass("on");
		this.className="on";
		changImg(this.innerText-1,liNum);
		clearInterval(interval);
	});
	
});

//图片切换定位
function changImg(index,liNum){
	var maxTop = liNum*270;
	$("#personImg")[0].style.position = "absolute";
	if(index*270<=maxTop){
		$("#personImg")[0].style.top = index*(-270) + "px";
	}else{
		$("#personImg")[0].style.top = "0";
	}	
}

效果图:



  • 1
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值