html 二级菜单延迟消失,js制作可以延时消失的菜单

本文实例为大家分享了js可延时消失的菜单,供大家参考,具体内容如下

182d60c26f65018e1f82a6021bf9ae6f.gif

代码:

无标题文档

*{padding:0;margin:0;}

ul{list-style:none;}

a{text-decoration:none;}

#menu{height:200px;border:1px solid #ccc;margin:40px auto;position:relative;}

#title{position:absolute;left:0;top:0;height:50px;border:1px solid yellow;background:blue;}

#title li{text-align:center;width:80px;height:30px;line-height:30px;float:left;background:#f1f1f1;border-radius:10px;color:#000;font-weight:bold;margin:10px 5px;cursor:pointer;}

#subtitle{height:30px;;border:1px solid #ccc;border-radius:10px;position:absolute;top:60px;left:10px;}

#subtitle:before{content:'';position:absolute;border-top:7px solid transparent;border-right:7px solid transparent;border-bottom:9px solid #ccc;border-left:7px solid transparent;top:-16px;left:30px;}

#subtitle:after{content:'';position:absolute;border-top:7px solid transparent;border-right:7px solid transparent;border-bottom:9px solid #fff;border-left:7px solid transparent;top:-15px;left:30px;}

#subtitle a{display:inline-block;height:20px;line-height:20px;margin:5px 5px;float:left;}

#subtitle a:hover{text-decoration:underline;}

window.onload = function () {

var title = document.getElementById('title');

var subtitle = document.getElementById('subtitle');

var aA = subtitle.getElementsByTagName('a');

var aLi = title.getElementsByTagName('li');

var arr = [

{ title : '首页', subtitle : ['首页1','首页2','首页3']},

{ title : '关于我们', subtitle : ['关于我们1','关于我们2','关于我们3','关于我们4','关于我们5']},

{ title : '课程', subtitle : ['课程1','课程2','课程3']},

{ title : '新闻', subtitle : ['新闻1','新闻2']},

];

var timer = null;

for ( var i = 0; i < arr.length; i++ ) {

var oLi = document.createElement('li');

oLi.innerHTML = arr[i].title;

oLi.index = i;

oLi.onmouseover = function () {

var width = parseInt(getStyle(this,'width'));

var marginRight = parseInt(getStyle(this,'marginRight'));

clearTimeout(timer);

subtitle.innerHTML = '';

createA(this.index);

subtitle.style.left = 10 + (width + marginRight) * this.index + 'px';

subtitle.style.display = 'block';

}

oLi.onmouseout = function () {

timer = setTimeout(function () {

subtitle.style.display = 'none';

}, 100);

}

title.appendChild(oLi);

}

subtitle.onmouseover = function () {

clearTimeout(timer);

this.style.display = 'block';

}

subtitle.onmouseout = function () {

this.style.display = 'none';

}

createA(0);

function createA(index){

for ( var j = 0; j < arr[index].subtitle.length; j++ ){

var oA = document.createElement('a');

oA.innerHTML = arr[index].subtitle[j];

subtitle.appendChild(oA);

}

}

function getStyle(ele, attr) {

return ele.currentStyle ? ele.currentStyle[attr] :

getComputedStyle(ele,0)[attr];

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值