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 相关文章推荐
关于js日期转化为毫秒数“节省20%的效率和和节省9个字符“问题
Mar 01 Javascript
jquery 获取表单元素里面的值示例代码
Jul 28 Javascript
js 用CreateElement动态创建标签示例
Nov 20 Javascript
js中获取 table节点各tr及td的内容简单实例
Oct 14 Javascript
微信小程序 wxapp导航 navigator详解
Oct 31 Javascript
layer弹出层中H5播放器全屏出错的解决方法
Feb 21 Javascript
JQuery 进入页面默认给已赋值的复选框打钩
Mar 23 jQuery
js实现移动端导航点击自动滑动效果
Jul 18 Javascript
基于daterangepicker日历插件使用参数注意的问题
Aug 10 Javascript
input 标签实现输入框带提示文字效果(两种方法)
Oct 09 Javascript
ng-repeat指令在迭代对象时的去重方法
Oct 02 Javascript
简述pm2常用命令集合及配置文件说明
May 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+DBM的同学录程序(1)
2006/10/09 PHP
php is_file()和is_dir()用于遍历目录时用法注意事项
2010/03/02 PHP
PHP进阶学习之垃圾回收机制详解
2019/06/18 PHP
聊聊 PHP 8 新特性 Attributes
2020/08/19 PHP
ExtJs GridPanel简单的增删改实现代码
2010/08/26 Javascript
JAVASCRIPT函数作用域和提前声明 分享
2013/08/22 Javascript
jQuery对象的selector属性用法实例
2014/12/27 Javascript
jQuery插件jRumble实现网页元素抖动
2015/06/05 Javascript
jQuery中$this和$(this)的区别介绍(一看就懂)
2015/07/06 Javascript
AngularJS  自定义指令详解及实例代码
2016/09/14 Javascript
react开发中如何使用require.ensure加载es6风格的组件
2017/05/09 Javascript
ionic选择多张图片上传的示例代码
2017/10/10 Javascript
angularjs 页面自适应高度的方法
2018/01/17 Javascript
详解Angular-ui-BootStrap组件的解释以及使用
2018/07/13 Javascript
Angular Material Icon使用详解
2018/11/07 Javascript
详解react组件通讯方式(多种)
2020/05/06 Javascript
Node.js API详解之 repl模块用法实例分析
2020/05/25 Javascript
在vue中created、mounted等方法使用小结
2020/07/21 Javascript
Python列表生成器的循环技巧分享
2015/03/06 Python
Python学习教程之常用的内置函数大全
2017/07/14 Python
Python 处理数据的实例详解
2017/08/10 Python
python 类的继承 实例方法.静态方法.类方法的代码解析
2019/08/23 Python
python3 map函数和filter函数详解
2019/08/26 Python
Python3基于print打印带颜色字符串
2020/07/06 Python
深入理解css中vertical-align属性
2017/04/18 HTML / CSS
CSS3中媒体查询结合rem布局适配手机屏幕
2019/06/10 HTML / CSS
软件测试题目
2013/02/27 面试题
师德建设实施方案
2014/03/21 职场文书
市场开发计划书
2014/05/07 职场文书
应急处置方案
2014/06/16 职场文书
电教室标语
2014/06/20 职场文书
个人工作年终总结
2015/03/09 职场文书
2015年银行客户经理工作总结
2015/04/01 职场文书
2019交通安全宣传标语集锦!
2019/06/28 职场文书
使用opencv-python如何打开USB或者笔记本前置摄像头
2022/06/21 Python
win10壁纸在哪个文件夹 win10桌面背景图片文件位置分享
2022/08/05 数码科技