关于显示列表的问题
头部光标放上去时显示列表,光标移走时隐藏列表。
问题:光标移开列表立刻隐藏了,没有机会移动到列表上,请问应该怎么解决啊?谢谢老师
正在回答
同学你好, 你的思路很清晰, 代码也很简洁, 已经很正规了, 编程是灵活的, 只要效果实现了就是可以的
另, 可以使用CSS设置鼠标移入到列表中, 列表项字体颜色发生改变哦
祝学习愉快~~~
js:
window.onload = function() {
// 获取元素
var getElem = function(selector) {
return document.querySelector(selector);
};
var getAllElem = function(selector) {
return document.querySelectorAll(selector);
};
// 获取元素的样式
var getCls = function(element) {
return element.getAttribute('class');
};
// 设置元素的样式
var setCls = function(element, cls) {
return element.setAttribute('class', cls);
};
// 为元素添加样式
var addCls = function(element, cls) {
var baseCls = getCls(element);
if (baseCls.indexOf(cls) === -1) {
setCls(element, baseCls + ' ' + cls); // 注意空格
}
return;
};
// 为元素删减样式
var delCls = function(element, cls) {
var baseCls = getCls(element);
if (baseCls.indexOf(cls) > -1) {
setCls(element, baseCls.split(cls).join(' ').replace(/\s+/g, ' '));
}
return;
};
// 获取imooc节点
var item7 = getElem(".header__nav-item-7");
//获取列表
var list = getElem(".list");
item7.onmouseover = function() {
addCls(list,"header__nav-item-7-show");
};
item7.onmouseout=function(){
delCls(list,"header__nav-item-7-show");
};
list.onmouseover = function() {
addCls(list,"header__nav-item-7-show");
};
list.onmouseout=function(){
delCls(list,"header__nav-item-7-show");
};
};
CSS:
p, li { white-space: pre-wrap; }
wesoft: 2019-06-14 08:22:35
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户注册</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
<script type="text/javascript" src="js/index.js"></script>
</head>
<body>
<!-- 头部 -->
<header class="header">
<div class="header__wrap">
<div class="header__logo">慕课高铁客户服务中心 |</div>
<div class="header__left_service">客户服务</div>
<nav class="header__nav">
<a href="javascript:;" class="header__nav-item header__nav-item-1">意见反馈</a>
<a href="javascript:;" class="header__nav-item header__nav-item-2">imooc@com</a>
<span class="header__nav-item header__nav-item-3">您好,请</span>
<a href="javascript:;" class="header__nav-item header__nav-item-4">登陆</a>
<span class="header__nav-item header__nav-item-5">|</span>
<a href="javascript:;" class="header__nav-item header__nav-item-6">注册</a>
<div class="header__nav-item">
<a href="javascript:;" class="header__nav-item-7">我的IMOOC ▼</a>
<ul class="list">
<li><a href="javascript:;" class="">未完成订单</a></li>
<li class="showbottom"><a href="javascript:;" class="">已完成订单(改/退)</a></li>
<li class="showbottom"><a href="javascript:;" class="">我的保险</a></li>
<li><a href="javascript:;" class="">查看个人信息</a></li>
<li class="showbottom"><a href="javascript:;" class="">账户安全</a></li>
<li class="showbottom"><a href="javascript:;" class="">常用联系人</a></li>
<li><a href="javascript:;" class="">重点旅客预约</a></li>
<li class="showbottom"><a href="javascript:;" class="">遗失物品查找</a></li>
<li class="showbottom"><a href="javascript:;" class="">服务查询</a></li>
<li><a href="javascript:;" class="">投诉</a></li>
<li><a href="javascript:;" class="">建议</a></li>
</ul>
</div>
<div class="phonelogo header__nav-item header__nav-item-8">手机版</div>
<!-- <ul class="list">
<li><a href="javascript:;" class="">未完成订单</a></li>
<li><a href="javascript:;" class="">已完成订单(改/退)</a></li>
<li><a href="javascript:;" class="">我的保险</a></li>
<li><a href="javascript:;" class="">查看个人信息</a></li>
<li><a href="javascript:;" class="">财产安全</a></li>
<li><a href="javascript:;" class="">常用联系人</a></li>
<li><a href="javascript:;" class="">重点旅客预约</a></li>
<li><a href="javascript:;" class="">遗失物品查找</a></li>
<li><a href="javascript:;" class="">服务查询</a></li>
<li><a href="javascript:;" class="">投诉</a></li>
<li><a href="javascript:;" class="">建议</a></li>
</ul> -->
</nav>
</div>
</header>
<!-- 页面主体 -->
<div class="mainscreen">
</div>
<!-- 页脚 -->
<footer class="footer"></footer>
</body>
</html>
wesoft: 2019-06-14 08:23:13
/* 通用 */
*{margin:0;padding:0;}
a{text-decoration:none;}
ul,li{margin:0;padding:0;list-style:none;}
li a{color:#333333;}
/* 头部 */
.header{background-color:#efefef;border-bottom:2px solid #2487c9;}
.header__wrap{width:1200px;height:124px;margin:0 auto;position:relative;}
.header__logo{width:384px;height:96px;line-height:96px;font-size:25px;color:#333333;text-indent:96px;background:url('../img/logo.png') left center no-repeat;background-size:96px 96px;position:absolute;top:50%;margin-top:-48px;left:20px;}
.header__left_service{position:absolute;width:65px;height:96px;color:#666666;font-size:16px;line-height:96px;top:50%;margin-top:-48px;left:384px;}
.header__logo,.header__left_service:hover{cursor:pointer;}
/* 导航部分 */
.header__nav{position:absolute;right:20px; /* width: 634px; */height:30px;top:50%;margin-top:-15px;}
.header__nav .header__nav-item{display:block;float:left;color:#00004a;line-height:30px;font-size:16px;}
.header__nav .header__nav-item-1{padding-left:10px;}
.header__nav .header__nav-item-2{color:#f88703;padding-left:10px;}
.header__nav .header__nav-item-3{padding-left:15px;}
.header__nav .header__nav-item-4{color:#f88703;padding-left:5px;}
.header__nav .header__nav-item-5{padding-left:5px;}
.header__nav .header__nav-item-6{padding-left:5px;}
.header__nav .header__nav-item .header__nav-item-7{display:block;padding-left:20px;color:#00004a;line-height:30px;font-size:16px;}
.header__nav .header__nav-item .header__nav-item-7:hover{color:rgb(251,116,3);}
.header__nav .header__nav-item-8{margin-left:70px;width:70px;text-indent:18px;background:url('../img/phone.png') left center no-repeat;background-size:15px 24px;}
.header__nav .header__nav-item .list{display:none;background-color:#fcfcfc;position:absolute;width:165px;border:1px solid rgb(251,116,3);margin-left:20px; /* margin-top: -30px; */ /* left: 20px; */}
.header__nav .header__nav-item .list li{height:35px;line-height:35px;margin-left:12px;margin-right:12px;padding-top:5px;}
.header__nav .header__nav-item .list li a{padding-left:10px;font-size:14px;}
.header__nav .header__nav-item .list .showbottom{border-bottom:1px dashed #333333;}
.header__nav .header__nav-item .header__nav-item-7-show{display:block;}
HTML:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户注册</title>
<link rel="stylesheet" type="text/css" href="css/style.css">
<script type="text/javascript" src="js/index.js"></script>
</head>
<body>
<!-- 头部 -->
<header class="header">
<div class="header__wrap">
<div class="header__logo">慕课高铁客户服务中心 |</div>
<div class="header__left_service">客户服务</div>
<nav class="header__nav">
<a href="javascript:;" class="header__nav-item header__nav-item-1">意见反馈</a>
<a href="javascript:;" class="header__nav-item header__nav-item-2">imooc@com</a>
<span class="header__nav-item header__nav-item-3">您好,请</span>
<a href="javascript:;" class="header__nav-item header__nav-item-4">登陆</a>
<span class="header__nav-item header__nav-item-5">|</span>
<a href="javascript:;" class="header__nav-item header__nav-item-6">注册</a>
<div class="header__nav-item">
<a href="javascript:;" class="header__nav-item-7">我的IMOOC ▼</a>
<ul class="list">
<li><a href="javascript:;" class="">未完成订单</a></li>
<li class="showbottom"><a href="javascript:;" class="">已完成订单(改/退)</a></li>
<li class="showbottom"><a href="javascript:;" class="">我的保险</a></li>
<li><a href="javascript:;" class="">查看个人信息</a></li>
<li class="showbottom"><a href="javascript:;" class="">账户安全</a></li>
<li class="showbottom"><a href="javascript:;" class="">常用联系人</a></li>
<li><a href="javascript:;" class="">重点旅客预约</a></li>
<li class="showbottom"><a href="javascript:;" class="">遗失物品查找</a></li>
<li class="showbottom"><a href="javascript:;" class="">服务查询</a></li>
<li><a href="javascript:;" class="">投诉</a></li>
<li><a href="javascript:;" class="">建议</a></li>
</ul>
</div>
<div class="phonelogo header__nav-item header__nav-item-8">手机版</div>
<!-- <ul class="list">
<li><a href="javascript:;" class="">未完成订单</a></li>
<li><a href="javascript:;" class="">已完成订单(改/退)</a></li>
<li><a href="javascript:;" class="">我的保险</a></li>
<li><a href="javascript:;" class="">查看个人信息</a></li>
<li><a href="javascript:;" class="">财产安全</a></li>
<li><a href="javascript:;" class="">常用联系人</a></li>
<li><a href="javascript:;" class="">重点旅客预约</a></li>
<li><a href="javascript:;" class="">遗失物品查找</a></li>
<li><a href="javascript:;" class="">服务查询</a></li>
<li><a href="javascript:;" class="">投诉</a></li>
<li><a href="javascript:;" class="">建议</a></li>
</ul> -->
</nav>
</div>
</header>
<!-- 页面主体 -->
<div class="mainscreen">
</div>
<!-- 页脚 -->
<footer class="footer"></footer>
</body>
</html>
补充代码。 item7为需要放光标的imooc节点。list是需要显示的ul节点.header__nav-item-7-show为“显示列表”的样式。
// 获取imooc节点
var item7 = getElem(".header__nav-item-7");
//获取列表
var list = getElem(".list");
item7.onmouseover = function() {
addCls(list,"header__nav-item-7-show");
};
item7.onmouseout=function(){
delCls(list,"header__nav-item-7-show");
};
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星