js选项卡_关于js选项卡切换的小问题想请教各路大神
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<style type="text/css">
*{margin:0;padding:0;}
ul{list-style:none;}
.clear{clear:both;}
.wrap{width:800px; margin-bottom:20px;}
.tap ul{height:40px;}
.tap ul .act{float:left; padding:0 20px; height:40px; line-height:40px; background:#F358F2;}
.tap li{float:left; padding:0 20px; height:40px; line-height:40px;}
.tap li a{color:#333; display:block;}
.wrap .chance{}
.wrap .chance div{border:2px solid #D4002E; width:800px; height:300px;}
.wrap .chance .a{display:none;}
</style>
</head>
<body>
<div class="wrap">
<div class="tap">
<ul>
<li class="act"><a href="javascript:;">tab1</a></li>
<li><a href="javascript:;">tab2</a></li>
<li><a href="javascript:;">tab3</a></li>
<li><a href="javascript:;">tab4</a></li>
</ul>
</div>
<div class="chance clear">
<div class="hider">你吃粪儿</div>
<div class="hider a">他吃啥</div>
<div class="hider a">缠缠黏黏</div>
<div class="hider a">好粘牙</div>
</div>
</div>
<div class="wrap">
<div class="tap">
<ul>
<li class="act"><a href="javascript:;">tab1</a></li>
<li><a href="javascript:;">tab2</a></li>
<li><a href="javascript:;">tab3</a></li>
<li><a href="javascript:;">tab4</a></li>
</ul>
</div>
<div class="chance clear">
<div class="hider">你吃粪儿</div>
<div class="hider a">他吃啥</div>
<div class="hider a">缠缠黏黏</div>
<div class="hider a">好粘牙</div>
</div>
</div>
</body>
</html>
<script>
function run(obj){
//找对象
var oUl=obj.getElementsByTagName('ul')[0];
var aLi=oUl.getElementsByTagName('li');
var aDiv=obj.getElementsByClassName('hider');
//绑事件,循环
for(var i=0;i<aLi.length;i++){
aLi[i].index=i//发牌照
aLi[i].onclick=function(){
for(var j=0;j<aLi.length;j++){
aLi[j].className='';//清空类名
aDiv[j].style.display='none';//隐藏
};
this.className='act';
aDiv[this.index].style.display='block';//显示
};
};
//----------------------
//自动播放
var n=0;//计数器
var timer=setInterval(function(){
n++;
if(n==aLi.length){
n=0;
};
for(var j=0;j<aLi.length;j++){
aLi[j].className='';//清空类名
aDiv[j].style.display='none';//隐藏
};
aLi[n].className='act';
aDiv[n].style.display='block';
},1000);
obj.onmouseover=function(){
clearInterval(timer);//清除计时器
};
obj.onmouseout=function(){
run(obj);//再运行
};
};
//----------------------------
var aWarp=document.getElementsByClassName('wrap');
run(aWarp[0]);
run(aWarp[1]);
</script>
//-------------------------------------------------------
我想请教,如果我想在js的function run的小括号那里再加上一个参数,比如加上一个autoran,然后在最后判断为true时让选项卡自动切换,否则就停止自动该怎么写?
最佳答案
javascript只要小小修改下就可以了,
<script>
function run(obj,autorun){
//找对象
var oUl=obj.getElementsByTagName('ul')[0];
var aLi=oUl.getElementsByTagName('li');
var aDiv=obj.getElementsByClassName('hider');
//绑事件,循环
for(var i=0;i<aLi.length;i++){
aLi[i].index=i//发牌照
aLi[i].onclick=function(){
for(var j=0;j<aLi.length;j++){
aLi[j].className='';//清空类名
aDiv[j].style.display='none';//隐藏
};
this.className='act';
aDiv[this.index].style.display='block';//显示
};
};
//----------------------
//是否自动切换
if(autorun){
var n=0;//计数器
var timer=setInterval(function(){
n++;
if(n==aLi.length){
n=0;
};
for(var j=0;j<aLi.length;j++){
aLi[j].className='';//清空类名
aDiv[j].style.display='none';//隐藏
};
aLi[n].className='act';
aDiv[n].style.display='block';
},1000);
obj.onmouseover=function(){
clearInterval(timer);//清除计时器
};
obj.onmouseout=function(){
run(obj);//再运行
};
};
};
//----------------------------
var aWarp=document.getElementsByClassName('wrap');
run(aWarp[0],true); //自动切换
run(aWarp[1],false); //不自动切换
</script>
追问:
我再问一个问题,你先看下面这段代码:<!doctype html><html><head><meta charset="utf-8"><title>无标题文档</title><style>*{margin:0;padding:0;}#box1{width:400px; height:252px; position:relative; margin:100px auto;}#box1 img{width:100%;}#box1 span{position:absolute; top:0; left:0; background:#DF4B4B; opacity:.5; width:100px; height:100px; cursor:move; display:none;}#box2{width:200px; height:200px; position:absolute; top:102px; left:500px; overflow:hidden; display:none}#box2 img{position:absolute;}</style></head><body><div id="box1"><img src="image/pic.jpg"> <span></span></div><div id="box2"><img src="image/pic.jpg"></div></body></html><script>var oBox1=document.getElementById("box1");var oSpan=oBox1.getElementsByTagName("span")[0];var oImg=document.getElementsByTagName("img")[1];var oBox2=document.getElementById("box2");oBox1.onmousemove=function(ev){ev=ev||window.event;//显示oBox2.style.display="block";oSpan.style.display="block";var l=ev.clientX-oBox1.offsetLeft-oSpan.offsetWidth/2;var t=ev.clientY-oBox1.offsetTop-oSpan.offsetHeight/2;if(l<0){l=0;};if(t<0){t=0;};if(l>oBox1.offsetWidth-oSpan.offsetWidth){l=oBox1.offsetWidth-oSpan.offsetWidth};if(t>oBox1.offsetHeight-oSpan.offsetHeight){t=oBox1.offsetHeight-oSpan.offsetHeight};oSpan.style.left=l+"px";oSpan.style.top=t+"px";//计算比率var rateY=t/-(oBox1.offsetHeight-oSpan.offsetHeight);var rateX=l/-(oBox1.offsetWidth-oSpan.offsetWidth);oImg.style.top=(oImg.offsetHeight-oBox2.offsetHeight)*rateY+"px";oImg.style.left=(oImg.offsetWidth-oBox2.offsetWidth)*rateX+"px";//隐藏oBox1.onmouseout=function(){oBox2.style.display="none";oSpan.style.display="none";};};</script>现在图片的放大区域是在外面的,如果想让图片的放大区域在图片内部,鼠标移到哪里放大区域就跟到哪里该怎么改这段代码
这样改就可以了,加上//***下面的两行代码,()中的值你可以根据自己设置<script>window.onload = function(){var oBox1=document.getElementById("box1");var oSpan=oBox1.getElementsByTagName("span")[0];var oImg=document.getElementsByTagName("img")[1];var oBox2=document.getElementById("box2");oBox1.onmousemove=function(ev){ev=ev||window.event;//显示oBox2.style.display="block";oSpan.style.display="block";var l=ev.clientX-oBox1.offsetLeft-oSpan.offsetWidth/2;var t=ev.clientY-oBox1.offsetTop-oSpan.offsetHeight/2;if(l<0){l=0;};if(t<0){t=0;};if(l>oBox1.offsetWidth-oSpan.offsetWidth){l=oBox1.offsetWidth-oSpan.offsetWidth};if(t>oBox1.offsetHeight-oSpan.offsetHeight){t=oBox1.offsetHeight-oSpan.offsetHeight};oSpan.style.left=l+"px";oSpan.style.top=t+"px";//***放大区也跟着鼠标移动 ()中你可以自己调整位置, oBox2.style.top = (102)+t+"px"; oBox2.style.left= (600)+l+"px";//计算比率var rateY=t/-(oBox1.offsetHeight-oSpan.offsetHeight);var rateX=l/-(oBox1.offsetWidth-oSpan.offsetWidth);oImg.style.top=(oImg.offsetHeight-oBox2.offsetHeight)*rateY+"px";oImg.style.left=(oImg.offsetWidth-oBox2.offsetWidth)*rateX+"px";//隐藏oBox1.onmouseout=function(){oBox2.style.display="none";oSpan.style.display="none";};};};</script>
其他回答
暂无其它回答!