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 相关文章推荐
Display SQL Server Login Mode
Jun 21 Javascript
javascript firefox不显示本地预览图片问题的解决方法
Nov 12 Javascript
csdn 博客中实现运行代码功能实现
Aug 29 Javascript
JS特权方法定义作用以及与公有方法的区别
Mar 18 Javascript
可自定义速度的js图片无缝滚动示例分享
Jan 20 Javascript
jquery网页回到顶部效果(图标渐隐,自写)
Jun 16 Javascript
javascript批量修改文件编码格式的方法
Jan 27 Javascript
jQuery插件datepicker 日期连续选择
Jun 12 Javascript
vue 路由页面之间实现用手指进行滑动的方法
Feb 23 Javascript
vue-router history模式下的微信分享小结
Jul 05 Javascript
Puppeteer 爬取动态生成的网页实战
Nov 14 Javascript
详解vue身份认证管理和租户管理
May 25 Vue.js
原生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自带函数给数字或字符串自动补齐位数
2014/07/29 PHP
PHP中-&gt;和=&gt;的含义及使用示例解析
2020/08/06 PHP
javascript indexOf函数使用说明
2008/07/03 Javascript
JQuery 前台切换网站的样式实现
2009/06/22 Javascript
『jQuery』取指定url格式及分割函数应用
2013/04/22 Javascript
深入了解Node.js中的一些特性
2014/09/25 Javascript
NodeJS学习笔记之Http模块
2015/01/13 NodeJs
javascript判断移动端访问设备并解析对应CSS的方法
2015/02/05 Javascript
javascript正则表达式基础知识入门
2015/04/20 Javascript
JQuery实现图片轮播效果
2015/09/15 Javascript
原生javascript实现自动更新的时间日期
2016/02/12 Javascript
jstl中判断list中是否包含某个值的简单方法
2016/10/14 Javascript
javascript跨域请求包装函数与用法示例
2016/11/03 Javascript
easyui-datagrid特殊字符不能显示的处理方法
2017/04/12 Javascript
AngualrJs清除定时器遇到的坑
2017/10/13 Javascript
Vue实现调节窗口大小时触发事件动态调节更新组件尺寸的方法
2018/09/15 Javascript
对node通过fs模块判断文件是否是文件夹的实例讲解
2019/06/10 Javascript
微信小程序的开发范式BeautyWe.js入门详解
2019/07/10 Javascript
JS实现前端路由功能示例【原生路由】
2020/05/29 Javascript
在vant 中使用cell组件 定义图标该图片和位置操作
2020/11/02 Javascript
如何使用 JavaScript 操作浏览器历史记录 API
2020/11/24 Javascript
Python部署web开发程序的几种方法
2017/05/05 Python
使用python实现链表操作
2018/01/26 Python
python系统指定文件的查找只输出目录下所有文件及文件夹
2020/01/19 Python
Python实现小黑屋游戏的完整实例
2021/01/06 Python
意大利时尚精品店:Nugnes 1920
2020/02/10 全球购物
英国家具、照明、家居用品网上商店:Wayfair.co.uk
2020/02/13 全球购物
致短跑运动员广播稿
2014/01/09 职场文书
幼儿园教师备课制度
2014/01/12 职场文书
考试作弊被抓检讨书
2014/10/02 职场文书
写给媳妇的检讨书
2015/05/06 职场文书
闪闪红星观后感
2015/06/08 职场文书
中秋节感想
2015/08/10 职场文书
Django项目配置Memcached和Redis, 缓存选择哪个更有优势
2021/04/06 Python
一篇文章带你复习java知识点
2021/06/28 Java/Android
浅谈redis整数集为什么不能降级
2021/07/25 Redis