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 相关文章推荐
jQuery的写法不同导致的兼容性问题的解决方法
Jul 29 Javascript
鼠标右击事件代码(asp.net后台)
Jan 27 Javascript
jquery插件制作 提示框插件实现代码
Aug 17 Javascript
前端微信支付js代码
Jul 25 Javascript
关于javascript原型的修改与重写(覆盖)差别详解
Aug 31 Javascript
概述jQuery中的ajax方法
Dec 16 Javascript
js时间控件只显示年月
Jan 08 Javascript
JavaScript实现重力下落与弹性效果的方法分析
Dec 20 Javascript
Vue.js获取被选择的option的value和text值方法
Aug 24 Javascript
javascript中floor使用方法总结
Feb 02 Javascript
通过实例讲解JS如何防抖动
Jun 15 Javascript
js实现的格式化数字和金额功能简单示例
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
1.PHP简介
2006/10/09 PHP
PHP Session_Regenerate_ID函数双释放内存破坏漏洞
2011/01/27 PHP
PHP新特性之字节码缓存和内置服务器
2017/08/11 PHP
PHP+jQuery实现双击修改table表格功能示例
2019/02/21 PHP
PHP单例模式实例分析【防继承,防克隆操作】
2019/05/22 PHP
js 程序执行与顺序实现详解
2013/05/13 Javascript
如何正确使用Nodejs 的 c++ module 链接到 OpenSSL
2014/08/03 NodeJs
js判断子窗体是否关闭的方法
2015/08/11 Javascript
原生js实现鼠标跟随效果
2017/02/28 Javascript
vue-resource + json-server模拟数据的方法
2017/11/02 Javascript
webpack 处理CSS资源的实现
2019/09/27 Javascript
[44:58]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第二场
2018/04/06 DOTA
Python ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
2014/06/10 Python
在Python的web框架中中编写日志列表的教程
2015/04/30 Python
Python出现segfault错误解决方法
2016/04/16 Python
Sanic框架配置操作分析
2018/07/17 Python
python使用PIL给图片添加文字生成海报示例
2018/08/17 Python
python算法与数据结构之冒泡排序实例详解
2019/06/22 Python
Python实现Selenium自动化Page模式
2019/07/14 Python
Python和Sublime整合过程图示
2019/12/25 Python
Tensorflow的常用矩阵生成方式
2020/01/04 Python
Python中logging日志记录到文件及自动分割的操作代码
2020/08/05 Python
python tkinter的消息框模块(messagebox,simpledialog)
2020/11/07 Python
英国在线潜水商店:Simply Scuba
2019/03/25 全球购物
Linux的主要特性
2014/10/06 面试题
东方红海科技面试题软件测试方面
2012/02/08 面试题
高一家长会邀请函
2014/01/12 职场文书
个性与发展自我评价
2014/02/11 职场文书
园艺师求职信
2014/03/10 职场文书
学习退步检讨书
2014/09/28 职场文书
村党支部书记个人对照材料汇报
2014/10/26 职场文书
2015年元旦晚会活动总结(学生会)
2014/11/28 职场文书
2015年信访工作总结
2015/04/07 职场文书
电影雨中的树观后感
2015/06/15 职场文书
导游词之南京夫子庙
2019/12/09 职场文书
Java中PriorityQueue实现最小堆和最大堆的用法
2021/06/27 Java/Android