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

博客介绍了在程序页面中,实现鼠标移入元素显示、移出元素隐藏功能的方法,包括CSS3的hover伪类属性、JavaScript和jQuery的鼠标移入移出事件,以及jQuery的hover()方法,还探讨了CSS3 hover属性对同级元素的适用性。

在程序的页面中,页面可能涉及很多方面的功能,可能需要隐藏起来,当鼠标移动到特定的位置时,使其功能显示出来或已经显示的功能的剩下功能显示,当鼠标移出特定位置或区域时,使其隐藏。
例如:
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的样式关键字。
可能可以实现鼠标移入或移出元素显示或隐藏的方法还有很多,只是我目前只会这四种方法,
如有其它方法,还请诸位前辈教导:
在这里插入图片描述
在这里插入图片描述

在Unity UGUI中实现鼠标移入移出时弹窗跟随鼠标位置显示隐藏,可结合引用中的方法,通过脚本实现。以下是一个示例脚本: ```csharp using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; public class PopupFollowMouse : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler { public Canvas canvas; // 画布 public GameObject popup; // 弹窗对象 private RectTransform rectTransform; // 坐标 void Start() { canvas = GameObject.Find("Canvas").GetComponent<Canvas>(); rectTransform = canvas.transform as RectTransform; popup.SetActive(false); // 初始时隐藏弹窗 } public void OnPointerEnter(PointerEventData eventData) { popup.SetActive(true); // 鼠标移入显示弹窗 } public void OnPointerExit(PointerEventData eventData) { popup.SetActive(false); // 鼠标移出隐藏弹窗 } void Update() { if (popup.activeSelf) // 如果弹窗处于显示状态 { Vector2 pos; if (RectTransformUtility.ScreenPointToLocalPointInRectangle(rectTransform, Input.mousePosition, canvas.worldCamera, out pos)) { popup.GetComponent<RectTransform>().anchoredPosition = pos; // 让弹窗跟随鼠标位置 } } } } ``` ### 脚本使用步骤 1. 创建一个新的C#脚本,将上述代码复制进去,保存为`PopupFollowMouse.cs`。 2. 将该脚本挂载到需要检测鼠标移入移出的UI元素上。 3. 在Unity编辑器中,将对应的`Canvas`对象赋值给脚本中的`canvas`变量,将弹窗对象赋值给`popup`变量。 ### 代码解释 - `Start`方法:在脚本启动时获取画布的引用,并将弹窗初始状态设置为隐藏。 - `OnPointerEnter`方法:实现`IPointerEnterHandler`接口,当鼠标移入时,将弹窗设置为显示状态。 - `OnPointerExit`方法:实现`IPointerExitHandler`接口,当鼠标移出时,将弹窗设置为隐藏状态。 - `Update`方法:在每一帧检查弹窗是否显示,如果显示,则使用`RectTransformUtility.ScreenPointToLocalPointInRectangle`方法将鼠标的屏幕位置转换为UI元素本地空间中的位置,并将弹窗的位置设置为该位置,实现跟随效果。
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值