如何实现鼠标移入或移出使元素显示或隐藏

8 篇文章 0 订阅
3 篇文章 1 订阅

在程序的页面中,页面可能涉及很多方面的功能,可能需要隐藏起来,当鼠标移动到特定的位置时,使其功能显示出来或已经显示的功能的剩下功能显示,当鼠标移出特定位置或区域时,使其隐藏。
例如:
1,某些网站上的购物车,当鼠标移入购物车图标时,他会显示一个框,来提示你的购物车里面已有的商品。
2,在QQ PC版的主页面中,当鼠标移入到我们的头像时,会提示我们的一些基础信息,点击时再跳转到详细信息页面。

这些现象用编程语言来描述的话:鼠标移入元素显示:鼠标移出元素隐藏。
实现这些基础功能可以用:
(1)CSS3中的hover伪类属性:
(2)javaScript中的鼠标移入事件和鼠标移出事件:
(3)jQuery 中的鼠标移入事件和鼠标移出事件:
(4)jQuery中的hover()方法:
目前只会这四种,如有其它请诸位前辈教导。
jQuery 需要引入脚本文件:

<div class="container"> 
        <div class="Moveout" id="Moveout" onmouseover="Moveoutsover()" onmouseout="MoveoutSout()">
            <h5>移入显示/移出隐藏</h5>
            <div class="contenter" id="content">
                <h5>你的酒馆对我打了烊</h5>
                <h5>最近</h5>
                <h5>刚好遇见你</h5>
                <h5>一曲相思</h5>
                <h5>心如止水</h5>
                <h5>绿色</h5>
                <h5>我就是一张白纸</h5>
            </div>
        </div>        
    </div>

content已在css样式中隐藏:(dispaly:none;)

(1)CSS3中的hover伪类属性:

 .Moveout:hover #content{
             display:block;
 }

提问:使用Css3的hover属性同级元素是否能使用。
我尝试了一下发现,要使用Css3的hover属性是元素显示或隐藏,两个元素需要存在上下级的关系能使用。
而两个不存在上下级关系的同级元素,无法使用Css3的hover属性。
不知是否正确,请诸位前辈教导。
(2)javaScript中的鼠标移入事件和鼠标移出事件:
鼠标移入事件:onmouseover
鼠标移出事件:onmouseout

  javascript 
        var Moveout = document.getElementById("Moveout");
        var content = document.getElementById("content");
        //鼠标移入显示
        Moveout.onmouseover = function () {
            content.style.display = "block";
        }
        function Moveoutsover() {
            content.style.display = "block";
        }
        //鼠标移出隐藏
        Moveout.onmouseout = function () {
            content.style.display = "none";
        }              
        function MoveoutSout() {
            content.style.display = "none";
        }

onmouseover和onmouseout方法也可以直接在相对应元素上定义其方法的名,但还需写方法体:
(3)jQuery 中的鼠标移入事件和鼠标移出事件:
鼠标移入事件:mouseenter
鼠标移出事件:mouseleave
引入jQuery脚本:

 <script src="~/Plugins/jquery-3.2.1.min.js"></script>
        //jQuery
        //鼠标移入显示
        $("#Moveout").mouseenter(function () {
           //$("#content").show();
            $("#content").css("display", "block");
        })
       
        //鼠标移出隐藏
        $("#Moveout").mouseleave(function () {
            //$("#content").hide();
            $("#content").css("display", "none");
        })

jQuery 中使元素显示和隐藏的方法:
显示可以用:show()或 .css(“display”, “block”);
隐藏可以用:hide()或 .css(“display”, “none”);
(4)jQuery中的hover()方法:
hover()方法是模仿光标(鼠标)悬停事件。
当鼠标移动到元素上时,会触发指定的第一个函数(mouseenter);
当鼠标移出这个元素时,会触发指定的第二个函数(mouseleave)。

 //jQuery的hover
        $("#Moveout").hover(
            function(){
                $("#content").show();
            },
            function () {
                $("#content").hide();
            }
        )

javaScript和jQuer的鼠标移入事件和鼠标移出事件及jQuery中的hover()方法,无需上下级关系:
除了可以实现元素的显示和隐藏,还可以实现很多的功能。
例如:改变元素的样式,元素的背景,字体大小,弹出提示等等,
涉及样式的改变,会涉及css,style的样式关键字。
可能可以实现鼠标移入或移出元素显示或隐藏的方法还有很多,只是我目前只会这四种方法,
如有其它方法,还请诸位前辈教导:
在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值