如何判断鼠标当前位置是否在一个div内部?

问题描述

一个按钮(class="myqiehuan"),一个初始隐藏的div(class="qiehuan")需求:1.当鼠标放到(不是点击事件)按钮上时,显示div,当鼠标离开按钮时,隐藏div2.当div被1中的事件触发而显示时,当鼠标在这个div内部时,继续显示这个div,当鼠标离开这个div时,隐藏divJQuery:$(".qiehuan").hover(function(){//对div的处理$(this).show();},function(){$(this).hide();});$(".myqiehuan").hover(function(){//对按钮的处理$(this).parent().children(".qiehuan").show();},function(){$(this).parent().children(".qiehuan").hide(); });遇到的问题:这个按钮和div之间可能有一条缝,使得将鼠标从按钮移到显示的div时,上面的代码交替执行,使得div的显示会闪一下,好像是:出了按钮它立即隐藏而进入div时又立即显示,所以会使得这个div跳动一下,如何才能解决这个问题?当然,如果有别的思路也可以,不一定非要判断出鼠标当前位置是否在这个div内部?比较急,谢谢! 问题补充:pwc_pengwenchao 写道

解决方案

这个我也做过这个功能。$(".qiehuan").hover(function(){//对div的处理${this}.addClass("hover"); // 当鼠标进入这个DIV的时候,给加一个class样式。$(this).show();},function(){${this}.removeClass("hover");// 当鼠标离开这个DIV的时候,给删除一个class样式$(this).hide();}); $(".myqiehuan").hover(function(){//对按钮的处理$(this).parent().children(".qiehuan").show();},function(){setTimeout(function(){var divThis = $(this).parent().children(".qiehuan");if (!divThis.hasClass('hover')){divThis.hide();}}, 100); // 延迟,这个看你多久合适。});
解决方案二:
在写js的时候,应该尽量少用 z-index这个样式,,因为用了以后,为了显示都想设置最大。这样会搞得无穷大。这是一个搞JS的强人这么跟我说的,当时他还说了一种解决方法,我忘记是什么了。你可以试试position

时间: 2024-10-29 08:49:23

如何判断鼠标当前位置是否在一个div内部?的相关文章

js判断鼠标同时离开两个div的思路及代码_javascript技巧

纠结了两天,憋出了个蛋,欢迎拍砖!!! 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <

js判断鼠标位置是否在某个div中的方法_javascript技巧

本文实例讲述了js判断鼠标位置是否在某个div中的方法.分享给大家供大家参考,具体如下: div的onmouseout事件让div消失时,会出现这样的情况,就是当鼠标移至div中的其它内容时,此时也判定为离开div,会触发 onmouseout事件,这样div中的内容就不能操作了.解决的办法是当触发onmouseout事件时,先判断鼠标是否在div内,如果在,说明鼠 标并没有离开div,就不删除div,否则,删除之.OK,现在问题解决了. 就是找到该div左上角和右下角坐标,判断鼠标的坐标是否在

如何判断鼠标是否在DIV的区域内

 通过mouseover,mouseout来触发事件,才判断鼠标是否在该区域. 但是这种方法的局限性就是,必须要触发mouseover,或mouseout,mouseleave事件才能知道 今天研究了一下这个问题,也普及了一下知识吧. 方法一: 通过mouseover,mouseout来触发事件,才判断鼠标是否在该区域. 但是这种方法的局限性就是,必须要触发mouseover,或mouseout,mouseleave事件才能知道. 代码如下: function chkIn()     {   d

如何判断鼠标是否在DIV的区域内_javascript技巧

今天研究了一下这个问题,也普及了一下知识吧. 方法一: 通过mouseover,mouseout来触发事件,才判断鼠标是否在该区域. 但是这种方法的局限性就是,必须要触发mouseover,或mouseout,mouseleave事件才能知道. 复制代码 代码如下: function chkIn()    {  div_1.innerText = "现在你把鼠标移入层了!";  div_1.style.font = "normal black"; }   funct

JS用斜率判断鼠标进入DIV四个方向的方法_javascript技巧

网上大部分判断鼠标移入div移入移出都是使用一下方法: 这个方法确实十分奇特,使用起来十分方便. 后来自己看了一些文章,看到有另一种以斜率的方法来判断鼠标的移动方向. 上图是此方法的示意图,以浏览器左上角做原点,水平轴作为x轴,往右为正:竖直轴作为y轴,向上为正. 中间的div的左上角坐标(x1,y1),右下角坐标(x2,y2),中心点的坐标(x0,y0). 设如图两点的斜率为k(k<0),关于x轴对称的斜率为-k. 另外鼠标刚移入时,鼠标的坐标设为(x,y): window.onload =

div布局-调整了div块的相对位置之后,div块里的超链接不好用了

问题描述 调整了div块的相对位置之后,div块里的超链接不好用了 我在一个div块里加了两个超链接,然后想用css调整这个div块的位置,把position的值设为absolute以后,在预览效果,div块里的超链接没反应了,鼠标放上去也没反应,这是为什么! 解决方案 你将位置换成相对的试试 解决方案二: 开发工具看是不是被其他也是absolute定位的透明层遮盖住了,将含有连接的div的z-index设置大一些

利用JS判断鼠标移入元素的方向_javascript技巧

最终效果 这里的关键主要是判断鼠标是从哪个方向进入和离开的 $("li").on("mouseenter mouseleave",function(e) { var w = this.offsetWidth; var h = this.offsetHeight; var x = e.pageX - this.getBoundingClientRect().left - w/2; var y = e.pageY - this.getBoundingClientRect

获取鼠标的位置/坐标

使用JavaScript 如何获取鼠标的位置呢? 获取光标的位置   获取鼠标坐标 先看效果  核心方法: Js代码   /***   * 返回鼠标的坐标   * @param e   * @returns {{x: (Number|pageX|*), y: (Number|pageY|*)}}   */   var getCoordInDocument = function(e) {       e = e || window.event;       var x = e.pageX || (

JS获取鼠标坐标位置实例分析_javascript技巧

本文实例分析了JS获取鼠标坐标位置的方法.分享给大家供大家参考,具体如下: 取鼠标坐标位置有这些:鼠标在视口的坐标位置(clientX,clientY),鼠标在页面的坐标位置(pageX,pageY),鼠标在屏幕的坐标位置(screenX,screenY),其中鼠标在视口的坐标位置(clientX,clientY),以及鼠标在屏幕的坐标位置(screenX,screenY)在所有的浏览器中都支持,但是鼠标在页面的坐标位置(pageX,pageY)在IE8及更早版本不支持,但是没有关系,可以通过s