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 相关文章推荐
破除一些网站复制、右键限制
Nov 04 Javascript
javascript Discuz代码中的msn聊天小功能
May 25 Javascript
js下获取div中的数据的原理分析
Apr 07 Javascript
JS原型对象通俗&quot;唱法&quot;
Dec 27 Javascript
javascript实现框架高度随内容改变的方法
Jul 23 Javascript
Bootstrap每天必学之简单入门
Nov 19 Javascript
JavaScript获取对象在页面中位置坐标的方法
Feb 03 Javascript
three.js实现3D视野缩放效果
Nov 16 Javascript
详解小程序rich-text对富文本支持方案
Nov 28 Javascript
javascript实现手动点赞效果
Apr 09 Javascript
vue el-tree 默认展开第一个节点的实现代码
May 15 Javascript
VUE中V-IF条件判断改变元素的样式操作
Aug 09 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 XML操作的各种方法解析(比较详细)
2010/06/17 PHP
微信支付开发动态链接Native支付
2016/07/12 PHP
PHP preg_match实现正则表达式匹配功能【输出是否匹配及匹配值】
2017/07/19 PHP
tp5(thinkPHP5)框架连接数据库的方法示例
2018/12/24 PHP
JavaScript中this关键字使用方法详解
2007/03/08 Javascript
JMenuTab简单使用说明
2008/03/13 Javascript
js停止输出代码
2008/07/20 Javascript
javascript中直接引用Microsoft的COM生成Word
2014/01/20 Javascript
用JS在浏览器中创建下载文件
2014/03/05 Javascript
jquery的clone方法应用于textarea和select的bug修复
2014/06/26 Javascript
javascript数组去重方法汇总
2015/04/23 Javascript
基于javascript制作经典传统的拼图游戏
2016/03/22 Javascript
最全的Javascript编码规范(推荐)
2016/06/22 Javascript
nodejs个人博客开发第一步 准备工作
2017/04/12 NodeJs
node中koa中间件机制详解
2017/08/22 Javascript
详解js几个绕不开的事件兼容写法
2017/08/30 Javascript
jQuery第一次运行页面默认触发点击事件的实例
2018/01/10 jQuery
详解VUE中的插值( Interpolation)语法
2020/10/18 Javascript
python单链表实现代码实例
2013/11/21 Python
手动实现把python项目发布为exe可执行程序过程分享
2014/10/23 Python
Python里字典的基本用法(包括嵌套字典)
2019/02/27 Python
Django中reverse反转并且传递参数的方法
2019/08/06 Python
python常用排序算法的实现代码
2019/11/08 Python
你需要学会的8个Python列表技巧
2020/06/24 Python
python中return不返回值的问题解析
2020/07/22 Python
CSS3的resize属性使用初探
2015/09/27 HTML / CSS
香港唯港荟酒店预订:Hotel ICON
2018/03/27 全球购物
Roxy荷兰官方网站:冲浪、滑雪板、服装和配件
2019/10/22 全球购物
Harman Audio官方商店:购买JBL、Harman Kardon、Infinity和AKG
2019/12/05 全球购物
公证委托书模板
2014/04/03 职场文书
亲属关系公证书
2014/04/08 职场文书
国家税务局领导班子对照检查材料思想汇报
2014/10/04 职场文书
2014年技术员工作总结
2014/11/18 职场文书
2015年城管个人工作总结范文
2015/04/20 职场文书
2016国培学习心得体会
2016/01/08 职场文书
使用Python通过企业微信应用给企业成员发消息
2022/04/18 Python