angularjs 实现移入鼠标悬浮提示

本文介绍了如何在AngularJS中实现鼠标悬浮提示功能。通过定义提示div并结合ng-mouseover事件,实现在input框上鼠标悬停时显示跟随鼠标位置的提示效果。详细步骤包括设置提示样式、绑定方法和编写js函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一步: 定义提示的div,在这里面自行改显示的样式

<div id="floatDiv" style="display: none; position: absolute; background-color: #7d8489; width: 150px;"></div>

第二步:在一个要使用此功能的input框里定义方法名、定义id值、并写出对应的js函数,如:ng-mouseover=“spSframe()”

 <input ht-input="item.PRO_NAME_" desc="项目名称" class="form-control" readonly="" id="input" ng-mouseover="spSframe()" type="text" ng-model="item.PRO_NAME_" permission="permission.fields.gc_repay_bill.PRO_NAME_" ht-validate="{&quot;required&quot;:false}"/>

js如下:

$scope.spSframe =function(){
    var inputId = ['input','input1','input2','input3','input4','input5'];//需要浮动显示内容的input id
            var floatDiv = document.getElementById('floatDiv');
            for(var k = 0; k < inputId.length; k++ ){
                var input = document.getElementById(inputId[k]);
                //显示浮动窗
                input.onmouseover = function (ev){ 
                    var windowEvent = window.event; //避免windowEvent丢失
                    setTimeout(function(){
                        floatDiv.innerText = ev.toElement.value || '(空)';
                        floatDiv.style.display = 'block';
                        var mousePosition = getMousePos(windowEvent); //获取鼠标位置
                        floatDiv.style.left = mousePosition.x + 'px';
                        floatDiv.style.top =  mousePosition.y + 'px';
                    },200);
                };
              //隐藏浮动窗
                input.onmouseout = function (ev) {   
                    floatDiv.style.display = 'none';
                };
               
            }
  };
   
  //获取鼠标相当于文档位置
    function getMousePos(event) {
       var e = event || window.event;
       var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
       var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
       var x = e.pageX || e.clientX + scrollX;
       var y = e.pageY || e.clientY + scrollY;
       //alert('x: ' + x + '\ny: ' + y);
       return { 'x': x, 'y': y };
    }

实现效果如下图,
在这里插入图片描述
是跟随鼠标位置进行显示,如有帮助赞一下呗或者评论一波呗,谢谢了老铁

### AngularJS实现鼠标移入事件的方法 在 AngularJS 中,可以通过 `ng-mouseenter` 和 `ng-mouseleave` 指令分别捕获鼠标移入和移出的事件[^1]。这些指令允许开发者绑定特定的行为到 DOM 元素上,从而实现鼠标交互时动态更新视图或模型。 下面是一个简单的示例,展示了如何使用 `ng-mouseenter` 来实现鼠标移入效果: ```html <!DOCTYPE html> <html lang="en" ng-app="myApp"> <head> <meta charset="UTF-8"> <title>AngularJS 鼠标移入事件</title> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.8.2/angular.min.js"></script> </head> <body ng-controller="myController"> <div ng-mouseenter="showMessage = true" ng-mouseleave="showMessage = false"> 将鼠标悬停在此区域上方。 <p ng-if="showMessage">欢迎访问我们的网站!</p> </div> <script> var app = angular.module('myApp', []); app.controller('myController', function($scope) { $scope.showMessage = false; }); </script> </body> </html> ``` 在这个例子中: - 当用户的鼠标进入指定的 `<div>` 区域时,会触发 `ng-mouseenter` 绑定的表达式 `showMessage = true`,从而使消息显示出来[^1]。 - 同样地,当鼠标离开该区域时,通过 `ng-mouseleave` 设置 `showMessage = false`,隐藏消息[^1]。 如果需要更复杂的逻辑处理,可以将操作封装成控制器中的函数,并通过指令调用它。例如: ```html <div ng-mouseenter="hoverIn()" ng-mouseleave="hoverOut()"> 移动鼠标到这里查看提示信息。 <span ng-show="isHovering">这是提示信息。</span> </div> <script> app.controller('myController', function($scope) { $scope.isHovering = false; $scope.hoverIn = function() { $scope.isHovering = true; }; $scope.hoverOut = function() { $scope.isHovering = false; }; }); </script> ``` 这里定义了一个带有状态变量 `$scope.isHovering` 的控制器,用于控制提示信息的可见性。当鼠标移入时调用 `hoverIn()` 方法设置其为 `true`;而移出时则调用 `hoverOut()` 方法将其重置为 `false`[^2]。 #### 注意事项 虽然也可以使用 `ng-mouseover` 达到类似目的,但它会在每次光标移动经过目标元素的不同部分时反复触发事件,因此通常推荐优先选用 `ng-mouseenter` 以减少不必要的性能开销[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值