js的一个小问题


图中圈出来的图片,当鼠标放到上面的手机图标是显示,但是移开就隐藏了,怎么实现鼠标可以往下移动,移到显示的图片也不会消失。

js代码:

$(document).ready(function(){
              $("#img_a").hover(function(){
                  $(".ul_a").css("display","block");
                  $(".ul_a").hover(function(){
                      $(".ul_a").hover(function(){
                          $(".ul_a").css("display","block");
                      },function(){
                          $(".ul_a").css("display","none");
                      });
                  });
              },function(){
                  $(".ul_a").css("display","none");
              });
          });

html代码:

<div>
                            <img id="img_a" src="/static/images/leve/log/log2.png">

                            <div class="ul_a">
                                <ul>
                                    <li >
                                    <img src="/static/images/leve/footer/footer_5.png">
                                    </li>
                                    <li>
                                        <span>联想智选APP</span>
                                        <span>下载即享</span>
                                        <span>999元新人礼</span>
                                    </li>
                                </ul>
                            </div>
                        </div>
《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 5
img_a的hover改为父级元素

<div id="img_a">
    <img src="/static/images/leve/log/log2.png">  
    <div class="ul_a">
        <img src="/static/images/leve/footer/footer_5.png">   
    </div>
</div>
$(document).ready(function(){
    $("#img_a").hover(function(){
        $(this).find('.ul_a').css("display","block");
    },function(){
        $(this).find('.ul_a').css("display","none");
    });
});
3年前 评论
PYA_24 (楼主) 3年前

使用一个容器将其包裹住,在此容器上加上 js 监听即可,这样无论怎么移动,其实都是在父容器上

3年前 评论
PYA_24 (楼主) 3年前
PHP-Coder 3年前
PYA_24 (楼主) 3年前

你用来显示的容器可以大一些,然后真正的内容在这个容器里定个位就好

3年前 评论
PYA_24 (楼主) 3年前

这种有时候不好改 dom 结构,可以加个延迟隐藏

$(document).ready(function(){
var timer = null
              $("#img_a").hover(function(){
                  if (timer) {
                      clearTimeout(timer)
                 }
                  $(".ul_a").css("display","block");
                  $(".ul_a").hover(function(){
                      clearTimeout(timer)
                  }, function() {
                      $(".ul_a").css("display","none");
                  });
              },function(){
                  setTimeout(function() {
                      $(".ul_a").css("display","none");
                 }, 300)
              });
          });

// 没做测试,可能会有问题。

3年前 评论
PYA_24 (楼主) 3年前

给手机图标加上 div显示隐藏事件,div自己也加上显示隐藏事件。但这有个前提图标和div必须是连在一起的

3年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!