关于二级菜单显示的问题
来源:5-4 二级菜单的展开与收起
ilfrank
2018-12-21 15:50:52
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>综合练习事例</title> <link rel="stylesheet" type="text/css" href="./style.css"> <link rel="stylesheet" type="text/css" href="./fontCont/iconfont.css"> </head> <body> <div class="main" id="main"> <!--banner区域--> <div class="banner" id="banner"> <a href="javascript:void(0)"> <div class="banner-side side1 side-active"></div> </a> <a href="javascript:void(0)"> <div class="banner-side side2"></div> </a> <a href="javascript:void(0)"> <div class="banner-side side3"></div> </a> </div> <!--左右切换图片按钮--> <!--左边按钮--> <div class="button left_button"></div> <!--右边按钮--> <div class="button right_button"></div> <!--圆点按钮--> <div class="dots" id = "dots"> <span class="activeDot"></span> <span></span> <span></span> </div> <!--菜单栏--> <div class="menu"> <div class="menu-item"> <a href=""> <span>手机、配件</span> <i class="icon"></i> </a> </div> <div class="menu-item"> <a href=""> <span>电脑</span> <i class="icon"></i> </a> </div> <div class="menu-item"> <a href=""> <span>家用电器</span> <i class="icon"></i> </a> </div> <div class="menu-item"> <a href=""> <span>家具</span> <i class="icon"></i> </a> </div> </div> <!--细分项目--> <div class="menu-box hide" id = "menu-box"> </div> <!--第一项--> <div class="menu-content hide"> <div class="title">手机、配件</div> <div class="content"> <span class="content_one">手机通讯:</span> <span class="content_two">手机 / 手机维修 / 以旧换新</span> </div> <div class="content"> <span class="content_one">手机配件:</span> <span class="content_two">手机壳 / 手机存储卡 / 数据线 / 充电器 / 电池</span> </div> <div class="content"> <span class="content_one">运营商:</span> <span class="content_two">中国联通 / 中国移动 / 中国电信</span> </div> <div class="content"> <span class="content_one">智能设备:</span> <span class="content_two">智能手环 / 智能家居 / 智能手表 / 其他配件</span> </div> <div class="content"> <span class="content_one">娱乐:</span> <span class="content_two">耳机 / 音响 / 收音机 / 麦克风</span> </div> </div> <!--第二项--> <div class="menu-content hide"> <div class="title">电脑</div> <div class="content"> <span class="content_one">手机通讯:</span> <span class="content_two">手机 / 手机维修 / 以旧换新</span> </div> <div class="content"> <span class="content_one">手机配件:</span> <span class="content_two">手机壳 / 手机存储卡 / 数据线 / 充电器 / 电池</span> </div> <div class="content"> <span class="content_one">运营商:</span> <span class="content_two">中国联通 / 中国移动 / 中国电信</span> </div> <div class="content"> <span class="content_one">智能设备:</span> <span class="content_two">智能手环 / 智能家居 / 智能手表 / 其他配件</span> </div> <div class="content"> <span class="content_one">娱乐:</span> <span class="content_two">耳机 / 音响 / 收音机 / 麦克风</span> </div> </div> <!--第三项--> <div class="menu-content hide"> <div class="title">家用电器</div> <div class="content"> <span class="content_one">手机通讯:</span> <span class="content_two">手机 / 手机维修 / 以旧换新</span> </div> <div class="content"> <span class="content_one">手机配件:</span> <span class="content_two">手机壳 / 手机存储卡 / 数据线 / 充电器 / 电池</span> </div> <div class="content"> <span class="content_one">运营商:</span> <span class="content_two">中国联通 / 中国移动 / 中国电信</span> </div> <div class="content"> <span class="content_one">智能设备:</span> <span class="content_two">智能手环 / 智能家居 / 智能手表 / 其他配件</span> </div> <div class="content"> <span class="content_one">娱乐:</span> <span class="content_two">耳机 / 音响 / 收音机 / 麦克风</span> </div> </div> <!--第四项--> <div class="menu-content hide"> <div class="title">家具</div> <div class="content"> <span class="content_one">手机通讯:</span> <span class="content_two">手机 / 手机维修 / 以旧换新</span> </div> <div class="content"> <span class="content_one">手机配件:</span> <span class="content_two">手机壳 / 手机存储卡 / 数据线 / 充电器 / 电池</span> </div> <div class="content"> <span class="content_one">运营商:</span> <span class="content_two">中国联通 / 中国移动 / 中国电信</span> </div> <div class="content"> <span class="content_one">智能设备:</span> <span class="content_two">智能手环 / 智能家居 / 智能手表 / 其他配件</span> </div> <div class="content"> <span class="content_one">娱乐:</span> <span class="content_two">耳机 / 音响 / 收音机 / 麦克风</span> </div> </div> </div> <script type="text/javascript" src="./javascript.js"></script> </body> </html>
*{ margin:0; padding: 0; } @font-face {font-family: 'iconfont'; src: url('./fontCont/iconfont.eot'); src: url('./fontCont/iconfont.eot') format('embedded-opentype'), url('./fontCont/iconfont.woff') format('woff'), url('./fontCont/iconfont.ttf') format('truetype'), url('./fontCont/iconfont.svg#iconfont') format('svg'); } ul{ list-style: none; } body{ font-family: "微软雅黑"; color:#14191e; } a{ text-decoration: none; } .main{ width: 1200px; height: 460px; margin: 20px auto; overflow: hidden; position: relative; } .banner{ width: 1200px; height: 460px; overflow: hidden; position: relative; } .banner-side{ width: 1200px; height: 460px; /* float: left;*/ position: absolute; background-repeat:no-repeat; display: none; } .side1{ background-image: url("./img/bg1.jpg"); } .side2{ background-image: url("./img/bg2.jpg"); } .side3{ background-image: url("./img/bg3.jpg"); } .side-active{ display: block; } .button{ width: 40px; height: 80px; top: 50%; position: absolute; background:url(./img/arrow.png) center center no-repeat; } .button:hover{ background-color: #5e5e5e; opacity: 0.5; } .left_button{ left: 244px; margin-top: -40px; transform:rotate(180deg); } .right_button{ right:0px; margin-top: -40px; } .dots{ position: absolute; right: 20px; bottom: 15px; } .dots span{ display: inline-block; width: 12px; height: 12px; margin-right: 5px; border-radius:50%; background-color: #000; opacity: 0.5; cursor: pointer; box-shadow:0 0 0 2px rgba(255,255,255,0.6) inset; } .dots span.activeDot{ background-color: #fff; } .menu{ width: 244px; height: 460px; position: absolute; top: 0px; left: 0px; background-color: rgba(7, 17, 27, 0.2); z-index: 999; } .menu-item{ height: 64px; line-height: 64px; padding: 0 24px; } .menu-item a{ display: block; height: 63px; padding: 0 5px; color: #fff; position: relative; border-bottom: 1px solid rgba(7, 17, 27, 0.1); } .icon{ font-family: "iconfont"; font-style:normal; font-weight:normal; font-size:15px; position: absolute; right: 4px; } .menu-item:hover{ background-color: rgba(7, 17, 27, 0.4); } .menu-box{ width: 665px; height: 458px; position: absolute; top: 0; left: 244px; border:1px solid #d9dde1; background: url(./img/fe.png) no-repeat; } .hide{ display: none; } .menu-content{ width: 665px; height: 458px; position: absolute; top: 0; left: 244px; border:1px solid #d9dde1; } .title{ margin:20px 50px; color: #FF0000; font-weight: bold; font-size: 18px; } .content{ margin:20px 50px; } .content_one{ display: inline-block; margin-right: 15px; font-weight: bold; }
//获取id function getId(id){ return typeof(id) === "string"?document.getElementById(id):id; } //全局变量 var index = 0, timer = null; var main = getId("main"); var banner_side = getId("banner").getElementsByTagName("div"); var dot = getId("dots").getElementsByTagName("span"); var left_btn = document.getElementsByClassName("left_button")[0]; var right_btn = document.getElementsByClassName("right_button")[0]; var menu = document.getElementsByClassName("menu")[0]; var menu_items = document.getElementsByClassName("menu-item"); var menu_box = document.getElementsByClassName("menu-box")[0]; var menu_content = document.getElementsByClassName("menu-content"); var len = banner_side.length; function changeImag(){ for(var i = 0;i< len;i++){ banner_side[i].style.display = "none"; dot[i].className = ""; } banner_side[index].style.display = "block"; dot[index].className = "activeDot"; } function sideImage(){ main.onmouseout = function(){ timer = setInterval(function(){ index++; if(index>=len){ index = 0; } changeImag(); },2000); } //调用上面的main.onmouseout()方法 main.onmouseout(); //onmouseover事件 main.onmouseover = function(){ if(timer){ clearInterval(timer); } } //点击小圆点切换图片 for(var d = 0 ;d<len;d++){ dot[d].id = d; dot[d].onclick = function(){ index = this.id; changeImag(); } } //点击左边的按钮 left_btn.onclick = function(){ index--; if(index < 0){ index = 2; } changeImag(); } //点击右边的按钮 right_btn.onclick = function(){ index++; if(index>2){ index = 0; } changeImag(); } //点击导航图 for(var i = 0;i< menu_items.length;i++){ menu_items[i].setAttribute("content_index",i); //又是闭包的问题,请注意里面的坑,进入function之后变量的作用域就会发生改变 menu_items[i].onmouseover = function(){ menu_box.className = "menu-box"; var idx = this.getAttribute("content_index") for(var j= 0;j<menu_content.length;j++){ menu_content[j].style.display = "none"; } menu_content[idx].style.display = "block"; } } menu.onmouseout = function(){ menu_box.className = "menu-box hide"; for(var j= 0;j<menu_content.length;j++){ menu_content[j].style.display = "none"; } } menu_box.onmouseover = function(){ this.className = "menu-box"; for(var j= 0;j<menu_content.length;j++){ menu_content[j].style.display = "block"; } } menu_box.onmouseout = function(){ for(var j= 0;j<menu_content.length;j++){ menu_content[j].style.display = "none"; } this.className = "menu-box hide"; } } sideImage();
老师,为什么最后我从主菜单左移的时候,二级菜单显示不出来,我看您视频中也有这个bug,但是您添加了一段代码:
subMenu.onmouseover = function(){
this.className = "sub-menu ";
}
然后就解决了这个问题,为啥我的不好使呢???
1回答
好帮手慕糖
2018-12-21
同学你好,你是指如下这里,在鼠标从主菜单移入到二级菜单的时候,二级菜单显示吗?
若是这里的话,同学的html结构不行哦,这里老师有使用一个大盒子来包裹整体的子菜单内容,而同学的没有哦,如下,建议:同学可以在看下课程,先理下思路,然后调整html结构哦。
若同学指的不是这里,可以详细描述下,再次提问哦。
希望能帮助到你,祝学习愉快!
相似问题