2012-08-15 67 views
1

例如:打開this simple jsfiddle並將窗口如下放置:this: 然後將光標放在jsfiddle的紅色區域上,使其成爲:hover(綠色),現在將光標移動到另一個窗口。地區仍綠色!如何避免它?如何刪除:當瀏覽器窗口突然失去焦點時從元素懸停?

+0

什麼是'始終在最上面'窗口?你如何將這個窗口放在瀏覽器的頂部,仍然能夠專注於瀏覽器窗口? – mkoryak 2012-08-15 13:56:19

+0

另外,你的用例是什麼?這看起來非常深奧 – mkoryak 2012-08-15 13:56:44

+0

這是Chrome特定的問題。如果鼠標移動到位於其上方的窗口中,它不會檢測到鼠標離開瀏覽器。當您點擊瀏覽器視口之外的內容時,chrome只會觸發「窗口退出」事件。如果你在視口上放置了某些東西,並且......完全是你想要做的,那麼你就會遇到這個問題。 – Ohgodwhy 2012-08-15 13:59:54

回答

3

您必須點擊新窗口才能使懸停元素失去焦點。即使您將鼠標懸停在不同的窗口上,jsFiddle窗口仍然具有焦點。在您點擊新窗口之前,窗口焦點不會改變。

+1

沒有。嘗試你告訴自己 - 它不工作。 – scythargon 2012-08-15 13:53:59

+0

我認爲他的問題的一部分是,他正在使用Linux的一些非常奇怪的窗口焦點設置 – mkoryak 2012-08-15 13:57:54

+0

@mkoryak不,它不是。我在Mountain Lion,IE7和Ubuntu上進行了測試。同樣的問題,所有3個瀏覽器。 – Ohgodwhy 2012-08-15 14:22:54

0

我不認爲你可以明確地刪除:懸停。你可以做的是改變你的CSS需要有一個類的一些外容器中,然後取出,當窗口失去焦點:

JS

$(window).focus(function() { 
    $("#outer").addClass('focusedContainer'); 
}); 
$(window).blur(function() { 
    $("#outer").removeClass('focusedContainer'); 
});​ 

CSS

.button{ 
    background: red; 
} 
.focusedContainer>.button:hover{ 
    background: green; 
} 

小提琴:http://jsfiddle.net/johnkoer/932Km/11/

+0

這在Chrome中不起作用。他遇到困難的瀏覽器是哪個。 – Ohgodwhy 2012-08-15 14:04:13

+0

你是對的,它不能100%糾正這個問題。它確實解決了這個問題,如果用戶點擊最上面的窗口,它將觸發模糊事件,這比沒有事情好一點。 – 2012-08-15 14:13:41

+0

什麼?如果我拖動...在Chrome窗口中顯示'我的電腦',點擊懸停事件並直接拖到'我的電腦'中,我可以點擊,啓動應用程序等,並且永遠不會觸發他的活動。你的方法並不能解決任何問題,而只是簡化了標準化的懸停過程。 – Ohgodwhy 2012-08-15 14:22:00

相關問題