怎样给这样的触发式菜单加个延迟感应的效果!
现在这个脚本,当鼠标滑过某个菜单目录时,就会瞬间显示出目录内容。
我需要实现当鼠标移动到某个菜单目录时,延迟一段时间(0.5)后才显示出目录的内容。
不知道到这个脚本修改后,能否实现,还请高手指点,本人超级菜鸟!这个是脚本
function etabit(btn){
var idname = new String(btn.id);
var s = idname.indexOf("_");
var e = idname.lastIndexOf("_")+1;
var tabName = idname.substr(0, s);
var id = parseInt(idname.substr(e, 1));
var tabNumber = btn.parentNode.childNodes.length;
for(i=0;i<tabNumber;i++){
document.getElementById(tabName+"_div_"+i).style.display = "none";
document.getElementById(tabName+"_btn_"+i).className = "";
};
document.getElementById(tabName+"_div_"+id).style.display = "block";
btn.className = "curr";
};
现在这个脚本,当鼠标滑过某个菜单目录时,就会瞬间显示出目录内容。
我需要实现当鼠标移动到某个菜单目录时,延迟一段时间(0.5)后才显示出目录的内容。
不知道到这个脚本修改后,能否实现,还请高手指点,本人超级菜鸟!这个是脚本
function etabit(btn){
var idname = new String(btn.id);
var s = idname.indexOf("_");
var e = idname.lastIndexOf("_")+1;
var tabName = idname.substr(0, s);
var id = parseInt(idname.substr(e, 1));
var tabNumber = btn.parentNode.childNodes.length;
for(i=0;i<tabNumber;i++){
document.getElementById(tabName+"_div_"+i).style.display = "none";
document.getElementById(tabName+"_btn_"+i).className = "";
};
document.getElementById(tabName+"_div_"+id).style.display = "block";
btn.className = "curr";
};
<script type="text/javascript">
function etabit(btn){
var idname = new String(btn.id);
var s = idname.indexOf("_");
var e = idname.lastIndexOf("_")+1;
var tabName = idname.substr(0, s);
var id = parseInt(idname.substr(e, 1));
var tabNumber = btn.parentNode.childNodes.length;
setTimeout(function(){
for(i=0;i<tabNumber;i++){
document.getElementById(tabName+"_div_"+i).style.display = "none";
document.getElementById(tabName+"_btn_"+i).className = "";
};
document.getElementById(tabName+"_div_"+id).style.display = "block";
btn.className = "curr";
},3000);
};
</script>
我要的是 鼠标停留在某个菜单目录上时,延迟一段时间(0.5)后才显示出目录的内容。
而MuBeiBei 你这个是鼠标滑过菜单目录后,延迟3秒才显示目录的内容。
我需要延迟的目的 是为了防止鼠标无意滑过目录后就立刻显示该目录内容,使网页显得很乱。所以需要延迟。
<script type="text/javascript">
function etabit(btn){
var idname = new String(btn.id);
var s = idname.indexOf("_");
var e = idname.lastIndexOf("_")+1;
var tabName = idname.substr(0, s);
var id = parseInt(idname.substr(e, 1));
var tabNumber = btn.parentNode.childNodes.length;
for(i=0;i<tabNumber;i++){
document.getElementById(tabName+"_div_"+i).style.display = "none";
document.getElementById(tabName+"_btn_"+i).className = "";
};
document.getElementById(tabName+"_div_"+id).style.display = "block";
btn.className = "curr";
};
var a = '';
function mouseOver(btn){ //鼠标进来时
a = setTimeout(function(){etabit(btn)},5000);
};
function mouseOut(){clearTimeout(a);}//鼠标离开时就清空setTimeout
</script>
<script>
var TIMER;
var inited=false;
function etabit(btn){
if(!inited)
sleep(0.5,btn)
else{
var idname = new String(btn.id);
var s = idname.indexOf("_");
var e = idname.lastIndexOf("_")+1;
var tabName = idname.substr(0, s);
var id = parseInt(idname.substr(e, 1));
var tabNumber = btn.parentNode.childNodes.length;
for(i=0;i<tabNumber;i++){
document.getElementById(tabName+"_div_"+i).style.display = "none";
document.getElementById(tabName+"_btn_"+i).className = "";
};
document.getElementById(tabName+"_div_"+id).style.display = "block";
btn.className = "curr";
inited=false
}
};
function sleep(tm,arg1){
inited=true;
TIMER=setTimeout(function(){etabit(arg1)},tm*1000);
}
</script>