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 生成指定范围数值随机数
Jan 09 Javascript
Mootools 1.2教程(3) 数组使用简介
Sep 14 Javascript
表单切换,用回车键替换Tab健(不支持IE)
Jul 20 Javascript
jQuery获取页面及个元素高度、宽度的总结——超实用
Jul 28 Javascript
javascript同步服务器时间和同步倒计时小技巧
Sep 24 Javascript
使用OpenLayers3 添加地图鼠标右键菜单
Dec 29 Javascript
使用jQuery中的wrap()函数操作HTML元素的教程
May 24 Javascript
基于JavaScript实现添加到购物车效果附源码下载
Aug 22 Javascript
js数组常用最重要的方法
Feb 04 Javascript
vue中如何实现后台管理系统的权限控制的方法示例
Sep 19 Javascript
JavaScript实现商品评价五星好评
Nov 30 Javascript
vue中使用mockjs配置和使用方式
Apr 06 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
10条PHP编程习惯助你找工作
2008/09/29 PHP
用php获取本周,上周,本月,上月,本季度日期的代码
2009/08/05 PHP
php 将字符串按大写字母分隔成字符串数组
2010/04/30 PHP
PHP-FPM运行状态的实时查看及监控详解
2016/11/18 PHP
Input 特殊事件onpopertychange和oninput
2009/06/17 Javascript
jquery 查找select ,并触发事件的实现代码
2011/03/30 Javascript
JS打开新窗口的2种方式
2013/04/18 Javascript
jQuery实现按钮只点击一次后就取消点击事件绑定的方法
2015/06/26 Javascript
JQuery为元素添加样式的实现方法
2016/07/20 Javascript
ajax异步请求详解
2017/01/06 Javascript
Jquery树插件zTree实现菜单树
2017/01/24 Javascript
C#微信小程序服务端获取用户解密信息实例代码
2017/03/10 Javascript
JS获取input[file]的值并显示在页面的实现方法
2018/03/09 Javascript
JavaScript EventEmitter 背后的秘密 完整版
2018/03/29 Javascript
详解小程序rich-text对富文本支持方案
2018/11/28 Javascript
解决vue更新路由router-view复用组件内容不刷新的问题
2019/11/04 Javascript
Vue快速实现通用表单验证的示例代码
2020/01/09 Javascript
原生js实现自定义消息提示框
2020/11/19 Javascript
[01:23]2014DOTA2国际邀请赛 球迷无处不在Ti现场世界杯受关注
2014/07/10 DOTA
[57:31]DOTA2-DPC中国联赛 正赛 SAG vs CDEC BO3 第一场 2月1日
2021/03/11 DOTA
Python 2.7.x 和 3.x 版本的重要区别小结
2014/11/28 Python
Python中urllib2模块的8个使用细节分享
2015/01/01 Python
Python MySQLdb Linux下安装笔记
2015/05/09 Python
python正则表达式之对号入座篇
2018/07/24 Python
python3将变量写入SQL语句的实现方式
2020/03/02 Python
Python实现捕获异常发生的文件和具体行数
2020/04/25 Python
Django Path转换器自定义及正则代码实例
2020/05/29 Python
python excel和yaml文件的读取封装
2021/01/12 Python
秘书岗位职责
2013/11/18 职场文书
护理专科毕业生自荐书范文
2014/02/19 职场文书
超市创业计划书
2014/04/24 职场文书
高一课前三分钟演讲稿
2014/09/13 职场文书
居委会个人对照检查材料思想汇报
2014/09/29 职场文书
写给同事的离职感言
2015/08/04 职场文书
优秀员工演讲稿
2019/06/21 职场文书
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
2021/07/26 Java/Android