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 12 Javascript
对JavaScript中this指针的新理解分享
Jan 31 Javascript
js实现仿阿里巴巴城市选择框效果实例
Jun 24 Javascript
老生常谈遮罩层 滚动条的问题
Apr 29 Javascript
bootstrap Validator 模态框、jsp、表单验证 Ajax提交功能
Feb 17 Javascript
原生js更改css样式的两种方式
Mar 15 Javascript
javascript中this用法实例详解
Apr 06 Javascript
js案例之鼠标跟随jquery版(实例讲解)
Jul 21 jQuery
详解javascript appendChild()的完整功能
Aug 18 Javascript
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
Oct 28 Javascript
Vue 组件复用多次自定义参数操作
Jul 27 Javascript
Vue实现一种简单的无限循环滚动动画的示例
Jan 10 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
珊瑚虫IP库浅析
2007/02/15 PHP
认识并使用PHP超级全局变量
2010/01/26 PHP
php预定义变量使用帮助(带实例)
2013/10/30 PHP
php获取文件内容最后一行示例
2014/01/09 PHP
PHP实现定时执行任务的方法
2014/10/05 PHP
100行PHP代码实现socks5代理服务器
2016/04/28 PHP
Mac下快速搭建PHP开发环境步骤详解
2019/05/05 PHP
Laravel重定向,a链接跳转,控制器跳转示例
2019/10/22 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
2019/11/24 PHP
jQuery插件 selectToSelect使用方法
2013/10/02 Javascript
node.js实现多图片上传实例
2014/06/03 Javascript
js中style.display=&quot;&quot;无效的解决方法
2014/10/30 Javascript
javascript实现动态改变层大小的方法
2015/05/14 Javascript
基于ajax实现文件上传并显示进度条
2015/08/03 Javascript
jQuery实现弹幕效果
2017/02/17 Javascript
JS身份证信息验证正则表达式
2017/06/12 Javascript
vue的mixins属性详解
2018/03/14 Javascript
JavaScript中的回调函数实例讲解
2019/01/27 Javascript
Vue-cli项目部署到Nginx服务器的方法
2019/11/01 Javascript
ES6中new Function()语法及应用实例分析
2020/02/19 Javascript
[02:58]献给西雅图的情书_高清
2014/05/29 DOTA
python命令行参数解析OptionParser类用法实例
2014/10/09 Python
对numpy和pandas中数组的合并和拆分详解
2018/04/11 Python
python二维码操作:对QRCode和MyQR入门详解
2019/06/24 Python
在python image 中安装中文字体的实现方法
2019/08/22 Python
python返回数组的索引实例
2019/11/28 Python
分享PyCharm最新激活码(真永久激活方法)不用每月找安装参数或最新激活码了
2020/12/27 Python
机电一体化自荐信
2013/12/10 职场文书
个人求职简历中英文自我评价
2013/12/16 职场文书
应届生求职自荐信范文
2014/04/07 职场文书
理想点亮人生演讲稿
2014/05/21 职场文书
重温入党誓词主持词
2015/06/29 职场文书
Go语言 go程释放操作(退出/销毁)
2021/04/30 Golang
Python超简单容易上手的画图工具库推荐
2021/05/10 Python
PyTorch 如何设置随机数种子使结果可复现
2021/05/12 Python
ipad隐藏软件app图标方法
2022/04/19 数码科技