js制作可以延时消失的菜单

发布时间 - 2026-01-10 22:29:54    点击率:

本文实例为大家分享了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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# js  # 菜单  # js自定义QQ菜单效果  # 基于JavaScript实现熔岩灯效果导航菜单  # JS树形菜单组件Bootstrap TreeView使用方法详解  # Vue.js组件tree实现无限级树形菜单  # Bootstrap树形菜单插件TreeView.js使用方法详解  # JavaScript 下拉菜单实现代码  # css+js下拉菜单  # 通用的二级菜单代码(css+javascript)  # 一个简单的js树形菜单  # js菜单点击显示或隐藏效果的简单实例  # 关于我们  # 首页  # 大家分享  # 具体内容  # 大家多多  # 无标题文档  # auto  # ccc  # relative  # position  # absolute  # solid  # height  # menu  # decoration  # border  # px  # width  # line  # radius 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 电商网站制作价格怎么算,网上拍卖流程以及规则?  如何在景安云服务器上绑定域名并配置虚拟主机?  Laravel如何优化应用性能?(缓存和优化命令)  Android 常见的图片加载框架详细介绍  Thinkphp 中 distinct 的用法解析  Claude怎样写约束型提示词_Claude约束提示词写法【教程】  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  如何构建满足综合性能需求的优质建站方案?  如何快速登录WAP自助建站平台?  Laravel如何将应用部署到生产服务器_Laravel生产环境部署流程  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  制作电商网页,电商供应链怎么做?  猎豹浏览器开发者工具怎么打开 猎豹浏览器F12调试工具使用【前端必备】  活动邀请函制作网站有哪些,活动邀请函文案?  PythonWeb开发入门教程_Flask快速构建Web应用  Linux安全能力提升路径_长期防护思维说明【指导】  C++用Dijkstra(迪杰斯特拉)算法求最短路径  如何挑选优质建站一级代理提升网站排名?  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】  南京网站制作费用,南京远驱官方网站?  html5如何设置样式_HTML5样式设置方法与CSS应用技巧【教程】  详解Oracle修改字段类型方法总结  电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  Laravel辅助函数有哪些_Laravel Helpers常用助手函数大全  WEB开发之注册页面验证码倒计时代码的实现  千问怎样用提示词获取健康建议_千问健康类提示词注意事项【指南】  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法  如何在自有机房高效搭建专业网站?  HTML 中动态设置元素 name 属性的正确语法详解  如何在IIS7中新建站点?详细步骤解析  如何为不同团队 ID 动态生成多个独立按钮  node.js报错:Cannot find module &#39;ejs&#39;的解决办法  昵图网官网入口 昵图网素材平台官方入口  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  php嵌入式断网后怎么恢复_php检测网络重连并恢复硬件控制【操作】  ,在苏州找工作,上哪个网站比较好?  公司门户网站制作流程,华为官网怎么做?  移动端脚本框架Hammer.js  Laravel如何保护应用免受CSRF攻击?(原理和示例)  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  Laravel怎么清理缓存_Laravel optimize clear命令详解  Midjourney怎么调整光影效果_Midjourney光影调整方法【指南】  如何快速搭建高效服务器建站系统?  如何安全更换建站之星模板并保留数据?  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  如何在Windows环境下新建FTP站点并设置权限?  Bootstrap整体框架之CSS12栅格系统  1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤  大连网站制作公司哪家好一点,大连买房网站哪个好?