关于二级菜单显示的问题
来源: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结构哦。

若同学指的不是这里,可以详细描述下,再次提问哦。
希望能帮助到你,祝学习愉快!
相似问题