javascript图片迭代器,为每张图片添加不同的特性

<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
		<style type="text/css">
		#container{
			list-style: none;
			position: relative;
			top: 0;
			left: 0;
		}
		#container li.menu{
			position: absolute;
			top: 0;
			left: 0;
			width: 690px;
			height: 365px;
			display: none;
		}
		#container li.current{
			position: absolute;
			top: 0;
			left: 0;
			width: 690px;
			height: 365px;
			display: block;
		}
		#container li .img{
			width: 800px;
			height:400px;
		}
		input{
			position: relative;
			top:500px;
		}
		</style>
	</head>
	<body>
		<div>
		<ul id="container">
			<li class="menu"><img src="../img/1.jpg"></li>
			<li class="menu"><img src="../img/2.jpg"></li>
			<li class="menu"><img src="../img/3.jpg"></li>
			<li class="menu"><img src="../img/4.jpg"></li>
		</ul>
		</div>
		<div>
		<input type="button" id="pre" value="上一页">
		<input type="button" id="next" value="下一页">
		<input type="button" id="firstaa" value="第一页">
		<input type="button" id="second" value="尾页">
		</div>
		<script language="javascript">
		var Iterator=function(items,container){
			var container=container&&document.getElementById(container)||document,
			items=container.getElementsByTagName(items),
			length=items.length,
			index=0;
		var splice=[].splice;
		return {
			first:function(){
				index=0;
				return items[index];
			},
			second:function(){
				index=length-1;
				return items[index];
			},
			pre:function(){
				if(--index>0){
					return items[index];
				}else{
					index=0;
					return items[index];
				}
			},
			next:function(){
				if(++index<length){
					return items[index];
				}else{
					index=length-1;
					return items[index];
				}
			},
			get:function(num){
				index=num>=0?num%length:num%length+length;
				return items[index];
			},
			//循环每个元素添加特性
			dealEach:function(fn){
				var args=splice.call(arguments,1);
				for(var i=0;i<length;i++){
					fn.apply(items[i],args);
				}
			},
			//单独为某个元素添加特性
			dealItem:function(num,fn){
				fn.apply(this.get(num),splice.call(arguments,2));
			},
			//每个元素添加特性,排除第几个添加另外的特性
			exclusive:function(num,allFn,numFn){
				this.dealEach(allFn);
				if(Object.prototype.toString.call(num)==="[object Array]"){
					for(var i=0,len=num.length;i<len;i++){
						this.dealItem(num[i],numFn);
					}
				}else{
					this.dealItem(num,numFn);
				}
			}
		}
	}
		var demo=new Iterator('li','container');
		var first=document.getElementById('firstaa');
		var second=document.getElementById('second');
		var next=document.getElementById('next');
		var pre=document.getElementById('pre');
		first.onclick=function(){
			demo.dealEach(function(){
				this.className="menu";
			},[0,3]);
			demo.dealItem(0,function(){
				this.className="current";
			});
		};
		second.onclick=function(){
			demo.dealEach(function(){
				this.className="menu";
			},[0,3]);
			demo.dealItem(3,function(){
				this.className="current";
				this.firstChild.className="img";
			});
		};
		next.onclick=function(){
			demo.next().className="current";
		};
		pre.onclick=function(){
			demo.dealEach(function(){
				this.className="menu";
			},[0,3]);
			demo.pre().className="current";
			
		};
		</script>
		
	</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值