关于显示列表的问题

关于显示列表的问题

头部光标放上去时显示列表,光标移走时隐藏列表。

问题:光标移开列表立刻隐藏了,没有机会移动到列表上,请问应该怎么解决啊?谢谢老师

正在回答

登陆购买课程后可参与讨论,去登陆

6回答

同学你好, 你的思路很清晰, 代码也很简洁, 已经很正规了, 编程是灵活的, 只要效果实现了就是可以的

另, 可以使用CSS设置鼠标移入到列表中, 列表项字体颜色发生改变哦

http://img1.sycdn.imooc.com//climg/5d031d17000149b103850119.jpg

祝学习愉快~~~

提问者 观鱼观猪 2019-06-14 08:24:18

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");

 };



};


提问者 观鱼观猪 2019-06-14 08:23:45

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 &#9660</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;}


提问者 观鱼观猪 2019-06-14 08:23:31

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 &#9660</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>



好帮手慕星星 2019-06-13 19:08:30

你好,根据同学的部分代码无法实现效果,建议将相关html,css以及js代码全部粘贴上来,便于准确定位问题所在,老师帮助你测试下。

祝学习愉快!

  • 提问者 观鱼观猪 #1
    代码已经补充上了,效果也基本实现了。我是将导航栏目和下拉列表无缝的连接在一起,然后光标离开导航栏目item7时同时会进入到列表区域,触发列表光标事件,显示列表。 请问老师:这种思路是否正确,是不是有其他更加正规的解决方法?
    2019-06-14 08:26:53
提问者 观鱼观猪 2019-06-13 17:33:45

补充代码。   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 星
2.组件化网页开发
  • 参与学习           人
  • 提交作业       1121    份
  • 解答问题       14456    个

本阶段在运用JS实现动态网页开发的基础上,带你深入理解企业开发核心思想,完成一个企业级网页的开发,体验前端工程师的成就感。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师