Web前端实战经验(JS相关)

问题待解决

搜索框Tab相关。

位置:D:\Sublime Text file\demo\搜索框
描述:鼠标点击”宝贝”所在元素时,会出现bug,
当点击元素后,选中的样式未能呈现。

1
2
3
4
5
6
<div id="search-tab" class="search-list">
<ul>
<li id="tab_1" class="selected"><a href="#">宝贝</a></li>
<li id="tab_2"><a href="#">店铺</a></li>
</ul>
</div>

javascript代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
var getDom=function(id){
return document.getElementById(id);
}

var flag=true;
var oLi=getDom('search-tab').getElementsByTagName('li');
getDom('search-tab').onmouseover=function(){
for (var i = 0; i < oLi.length; i++) {
oLi[i].style.display='block';
}
this.className+=' trigger-hover';
}
for (var i = 0; i < oLi.length; i++) {
oLi[i].onmouseover=function(){
if (this.className.indexOf('selected')<0) {
this.className+=' selected';
}
}
oLi[i].onmouseout=function(){
this.className='';
}
oLi[i].onclick=function(){
for (var i = 0; i < oLi.length; i++) {
oLi[i].style.display='none';
oLi[i].className="";
}
this.style.display='block';
this.className+=' selected';
}
}

导航菜单相关问题

位置:D:\Sublime Text file\demo\导航菜单制作\index2.html
描述:当将setInterval(function(){})赋值给变量timer时,会出现bug,隐藏菜单时出现闪烁现象,也可能菜单无法隐藏等bug.

1
2
3
4
5
6
7
8
9
10
11
12
13
aLi[i].onmouseout=function(){
var oSubNav=this.getElementsByTagName('ul')[0];
if(oSubNav){
var This=oSubNav;
clearInterval(This.time);
This.time=setInterval(function(){
This.style.height=This.offsetHeight-10+"px";
if(This.offsetHeight<=0){
clearInterval(This.time)
}
},30)
}
}

上述代码正确,下述代码会出现bug

1
2
3
4
5
6
7
8
9
10
11
12
13
aLi[i].onmouseout=function(){
var oSubNav=this.getElementsByTagName('ul')[0];
if(oSubNav){
var This=oSubNav,timer;
clearInterval(timer);
timer=setInterval(function(){
This.style.height=This.offsetHeight-10+"px";
if(This.offsetHeight<=0){
clearInterval(timer);
}
},30)
}
}

坚持原创技术分享,您的支持将鼓励我继续创作!