js制作可以延时消失的菜单


Posted in Javascript onJanuary 13, 2017

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

js制作可以延时消失的菜单

代码:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style>
*{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;}
</style>
<script>
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];
 }

}
</script>
</head>

<body>
<div id="menu">
 <ul id="title">
 </ul>
 <div id="subtitle">
 </div>
</div>
</body>
</html>

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

Javascript 相关文章推荐
javascript类继承机制的原理分析
Sep 12 Javascript
jqgrid 简单学习笔记
May 03 Javascript
jquery 插件学习(五)
Aug 06 Javascript
window.open以post方式将内容提交到新窗口
Dec 26 Javascript
javascript中创建对象的几种方法总结
Nov 01 Javascript
js取得html iframe中的元素和变量值
Jun 30 Javascript
tuzhu_req.js 实现仿百度图片首页效果
Aug 11 Javascript
jquery实现的横向二级导航效果代码
Aug 26 Javascript
浅谈js中的this问题
Aug 31 Javascript
浅谈vue方法内的方法使用this的问题
Sep 15 Javascript
React生命周期原理与用法踩坑笔记
Apr 28 Javascript
Vue Render函数原理及代码实例解析
Jul 30 Javascript
原生js实现下拉框功能(支持键盘事件)
Jan 13 #Javascript
js实现自动轮换选项卡
Jan 13 #Javascript
Javascript 使用ajax与C#获取文件大小实例详解
Jan 13 #Javascript
详解angularJs中自定义directive的数据交互
Jan 13 #Javascript
微信小程序 MD5加密登录密码详解及实例代码
Jan 12 #Javascript
很棒的一组js图片轮播特效
Jan 12 #Javascript
微信小程序 页面跳转传递值几种方法详解
Jan 12 #Javascript
You might like
关于PHP的相似度计算函数:levenshtein的使用介绍
2013/04/15 PHP
解析php根据ip查询所在地区(非常有用,赶集网就用到)
2013/07/01 PHP
PHP生成树的方法
2015/07/28 PHP
thinkPHP简单遍历数组方法分析
2016/05/16 PHP
php提取微信账单的有效信息
2018/10/01 PHP
Javascript 日期对象Date扩展方法
2009/05/30 Javascript
JavaScript实现的日期控件具体代码
2013/11/18 Javascript
JS的框架Polymer中的dom-if和is属性使用说明
2015/07/29 Javascript
jQuery插件实现适用于移动端的地址选择器
2016/02/18 Javascript
js实现打地鼠小游戏
2017/02/13 Javascript
jQuery实现全选、反选和不选功能
2017/08/16 jQuery
强大的JavaScript响应式图表Chartist.js的使用
2017/09/13 Javascript
一个简易时钟效果js实现代码
2020/03/25 Javascript
基于vue.js无缝滚动效果
2018/01/25 Javascript
Node.js应用设置安全的沙箱环境
2018/04/23 Javascript
vue下history模式刷新后404错误解决方法
2018/08/18 Javascript
解决layui前端框架 form表单,table表等内置控件不显示的问题
2018/08/19 Javascript
vue-router实现编程式导航的代码实例
2019/01/19 Javascript
js getBoundingClientRect使用方法详解
2019/07/17 Javascript
浅谈监听单选框radio改变事件(和layui中单选按钮改变事件)
2019/09/10 Javascript
python发送arp欺骗攻击代码分析
2014/01/16 Python
Python中的map()函数和reduce()函数的用法
2015/04/27 Python
Python-OpenCV基本操作方法详解
2018/04/02 Python
Python装饰器语法糖
2019/01/02 Python
基于python进行抽样分布描述及实践详解
2019/09/02 Python
记录模型训练时loss值的变化情况
2020/06/16 Python
小学生自我评价范例
2013/09/24 职场文书
职称自我鉴定
2013/10/15 职场文书
专业销售业务员求职信
2013/11/18 职场文书
电子商务专业求职信
2014/03/08 职场文书
大学生自我评价200字(4篇)
2014/09/17 职场文书
新教师个人工作总结
2015/02/06 职场文书
信用卡工作证明范本
2015/06/19 职场文书
2019年农民幸福观调查的实践感悟
2019/12/19 职场文书
一篇文章带你了解Python和Java的正则表达式对比
2021/09/15 Python
python基础之错误和异常处理
2021/10/24 Python