Tag: mouseover

jQuery检测鼠标停留在元素上的秒数

有没有办法检测鼠标指针停留在html元素上的秒数? 我想检索鼠标停留在元素上的秒数,以便在回调事件上稍微延迟…如果可能的话:) 我正在尝试通过计数器进行简单的for()循环检测: var time_over ; $(‘.bean-active’).live(‘mouseover’,function(){ id_tag = $(this).attr(“id”); for(time_over = 1;time_over <= 3000;time_over ++){ if(time_over == 3000){ $('.bean-bubble,.bean-bubble img').hide(); $('#bean-bubble-'+id_tag+',#bean-bubble-'+id_tag+' img').show(); } } }); 问题是它不起作用:( 另外我想绑定一个mouseleave事件,脚本逻辑应该是: while ( mouseover element count how many time it stays over) if (time == n) { do somenthing } if (mouseleave from element earlier then time) { […]

从iframe内部获取绝对鼠标位置

我有一个iframe的网页呈现另一个页面(相同的域)。 我需要获取与父文档相关的鼠标位置。 请注意,iframe可以双向滚动。 我尝试过使用偏移而没有运气。 $(‘#iframe’).contents().find(‘html’).on(‘mousemove’, function (e) { //gives me location in terms of the iframe but not the entire page. var y = e.pageY; //gives me 0 var y = $(this).offset().top; //more code here…. })

jQuery:有没有机会检测鼠标在没有“偏移”方法的情况下从哪一侧进入div?

有没有办法检测鼠标光标来自div的哪一侧? 目前我正在使用这种方法: jQuery(this).bind(‘mousemove’,function(e){ offset_pos_x = parseInt(e.offsetX); offset_pos_y = parseInt(e.offsetY); … 然后我寻找鼠标进入div的距离,在哪个方向。 问题是,这个方法有点儿麻烦,因为我需要所有4个边,而不仅仅是两个,所以我必须检查offsetX和offsetY。 如果我在div中移动鼠标,例如X:+ 15,Y:-3(以像素为单位),我知道鼠标是从左侧移动的,因为鼠标在x轴上移动了15px,但在y轴上只移动了3px 。 关于这个的错误的事情是,当X和Y几乎相同并且我不知道鼠标是从左还是从顶部(例如)。 另外,根据我的另一个问题( jQuery:mouseenter / mousemove / mouseover无法通过小div和快速鼠标移动识别 ),由于浏览器/操作系统限制,事件不会在div的第一个Pixel上触发。 因此,我的“entered_at”坐标并不准确 – 例如: 如果我在div内部(从左侧)快速移动鼠标光标,则“entered_at”坐标为x:17,y:76。 现在如果我在停止鼠标后将鼠标移动到左边,例如x:6,y:76,起点和offsetX之间的差值为负,所以触发了“光标来自右边”function…… 有没有其他方法可以检测鼠标光标来自哪一侧? 问候,帕特里克

如果鼠标hover在元素上一段时间,则显示弹出窗口

我想知道如何在鼠标hover在元素上一段时间后显示弹出/提示框,例如伪代码: if mouseover if hovered for more than 2 seconds –> show popup/tipbox else —> cancel mouseover else if mouseout –> reset timer/cancel mouseover 到目前为止我已经完成了这项工作,但它无法有效工作,如果我快速移动并移动鼠标,它仍然会显示弹出/提示框。 $(‘a[rel=tip]’).live(‘mouseover mouseout’, function(e) { if(e.type == ‘mouseover’) { var mouseTime = setTimeout(function() { $(‘.tipbox’).slideDown(‘fast’); }, 1000); } else if(e.type == ‘mouseout’) { if(mouseTime) { cancelTimeout(mouseTime); mouseTime = null; $(‘.tipbox’).slideUp(‘fast’); } […]

Jquery:如何为mouseleave添加延迟,这样如果有人意外地无意中将元素hover,它仍然保持打开状态

hoverintent插件与我需要的相反。 我有一个由.trigger触发的.popup,当我将它hover时,我希望.popup不会淡出几秒钟,但是如果我将其hover,然后再次hover,则取消将要发生的淡出并保持.popup打开。 有谁知道我会怎么做? 这不起作用,但这是一个想法: $(‘.trigger’).hover(function(){ $(‘.popup’).fadeIn(600) }, function() { $(‘.popup’).delay(2000, function(){ if ($(this).blur() = true) { $(‘.popup’).fadeOut(600) } }); })

jQuery时间鼠标在元素上(hover)

我有一个hover事件附加到几个链接,当你翻过它时会出现一个框。 是否有一种方法可以使鼠标hover事件仅在鼠标超过链接超过500毫秒时触发? 因此,目前只要鼠标越过链接就会出现该框,但我希望它只在鼠标已超过500毫秒或更长时间时出现。

寻找像stackoverflow这样的鼠标hoverfunction

我喜欢StackOverflow的hover效果。 我想在我的网络应用程序中使用类似的function。 有人可以让我知道吗? 这个function叫什么? 有没有可用的图书馆? 我使用过jQuery Tooltip,但我没有给那个留下深刻的印象。 目前我在我的应用程序中使用overLib很老了。 编辑: Impressed在这里听起来不太好, 我只想像stackoverflow一样有鼠标hover效果 。

准确检测具有圆角的div的鼠标hover事件

我正在尝试在圆圈上检测鼠标hover事件。 我像这样定义圆形div: .circle { width: 80px; height: 80px; -moz-border-radius: 40px; -webkit-border-radius: 40px; background-color: #33f; } 然后我使用jQuery检测mousover,如下所示: $(‘.circle’).mouseover(function() { $(this).css({backgroundColor:’#f33′}); }); 除了整个80px x 80px区域触发mouseover事件外,这种方法效果很好。 换句话说,只需触摸div的右下角即可触发鼠标hover事件,即使鼠标未在可见圆圈上方也是如此。 是否有简单且jquery友好的方式来触发圆形区域中的鼠标hover事件? 更新:为了这个问题,让我们假设浏览器支持CSS3并正确渲染border-radius。 有没有人有疯狂的数学/几何技能来提出一个简单的方程来检测鼠标是否已进入圆圈? 为了使它更简单,我们假设它是一个圆而不是一个任意的边界半径。

IE8上的鼠标hover/hover效果很慢

我在IE8中发现了一个奇怪的性能问题,当在一个有很多行的表上使用鼠标hover事件时(本例中为100)。 我已经尝试了很多不同的方法,但我似乎无法找到任何方法来获得它我喜欢/需要的速度。 如果我在每个事件上切换类,性能在所有IE版本中都会下降,如果我通过javascript使用CSS直接操作IE6和IE7加速很多,但IE8仍然执行糟糕。 有任何想法吗 ? 我真的想知道是什么让mouseover事件与其他所有浏览器相比都显得迟钝。 如果这只发生在IE6上,我可以理解并让它通过,但是当最新版本的浏览器是最慢的时,只会有越来越多的用户体验不好。 使用JQueryhover的示例: http : //thedungheap.net/research/ 编辑:我现在更新了示例,以便很容易看到有10行和200之间的区别。这是在同一个文档中,所以这对整个DOM大小来说不是问题,我猜

鼠标hover问题

我有以下鼠标hoverfunction: $(‘.msg_id’).live(“mouseover”, function() { $(this).css(‘cursor’, ‘pointer’); tid = $(this).attr(‘id’); idx = $(this).attr(‘name’); resp=””; $.ajax({ async: false, url: “log_msg.asp”, data: $(“#msgForm”).serialize() + “&aktion=popup&msg_id=”+tid+”&msg_id”+idx, success: function(data){ $(“#”+tid).html(data); } }); //$.post(“log_msg.asp”, $(“#msgForm”).serialize() + “&aktion=popup&msg_id=”+tid+”&msg_id”+idx, //function(data) { //}).success(function(){ //$(“#”+tid).html(data); //resp=data; //$(‘#bub’+tid).css(‘display’, ‘block’); //popd.css(‘display’, ‘block’); //}); }); 它将一些html代码放在.msg_id($(“#”+ tid).html(data);)中。 函数“mouseover”在循环中调用。 ajax请求在鼠标hover时始终发送,而不仅仅是一次。 我该如何解决? 我也尝试过mouseenter,但它也会循环播放。