簡體   English   中英

調整窗口大小時,Chrome中觸發了Mouseenter事件

[英]Mouseenter event triggered in chrome when resizing window

Google Chrome瀏覽器中的行為非常奇怪!

我有一個網格div ,並在每個然后,我添加eventListenner為mouseenter事件。 在我的演示代碼中,當事件觸發時,div獲取opacity:0.2

$(".target_div_class").on("mouseenter",  [my action ...])

嗯,除了Google Chrome瀏覽器外,其他瀏覽器都可以使用。

要重現chrome中的異常行為, 請轉到我的codepen演示頁 ,將鼠標指針放在網格的前面,並開始快速調整主瀏覽器窗口的大小,即使沒有鼠標,您也會發現某些div的不透明度已更改滾下 !

我做錯了,是Chrome不喜歡的特殊jquery事件嗎?

謝謝

拉里

編輯-1-

我想我理解為什么有些div接收該事件。

看來,當我單擊瀏覽器的邊框(左側或右側)時,Chrome會保留鼠標位置X和Y的痕跡。

然后,當緩慢擴展瀏覽器寬度時,此“開始鼠標位置”下的任何div都會接收到該事件。 首先縮小瀏覽器的寬度,然后慢慢擴展它,如果我用鋼筆將其放到鼠標開始的位置,然后再調整大小,這很簡單,這很清楚。 非常非常奇怪

編輯-2-

此行為僅在Windows 8操作系統上 ,我只是在Mac上進行過測試,沒有問題!

好吧,我已經在幾個站點上測試了這種行為,例如: https : //devart.withgoogle.com/

我猜想是由Google專業人士做出的,並且再次發生了這種奇怪的行為,我將嘗試查找如何與Google Chrome小組聯系...

我認為chrome無法完全支持mouseenter / mouseleave。 與IE中不同,Chrome僅模擬這些功能。

但是,僅當有人嘗試以比瀏覽器邊緣實際移動更快的速度調整窗口大小並且鼠標瞬間進入頁面時,才會出現問題。 因此,它不是一個不合理的行為。 您隨時可以嘗試使用

$(window).resize(function() {
    //some code to reset opacity
});

看看是否有幫助

$(".target_div_class").on("mouseenter", function(){
 event.stopPropagation();
   //your code
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM