2012-08-06 65 views
1

我想測量mousedown事件和應用css活動屬性之間的時間,而不使用任何jQuery函數(純javascript)。我發現存在不活動的事件,但Opera不支持Opera(我想要進行此測量的瀏覽器)。實際上,這個活動事件僅由IE支持(不確定哪些版本)。活動事件上的HTML元素

htmlElement.addEventListener('mousedown', function(){var timestamp = new Date().getTime()/1000; console.warn('mouse down ', timestamp)}) 

htmlElement.addEventListener('DOMAttrModified', function(){var timestamp = new Date().getTime()/1000; console.info('highlighted ', timestamp)}) 

此'DOMAttrModified'事件不會報告按鈕何時變爲活動狀態。

回答

5

:active是一個CSS僞類,不是DOM屬性或屬性。由於GUI和代碼執行的單線程性質,測量鼠標關閉和僞類設置的時間之間的時間是不可能的也是不可行的。基本上,在鼠標事件觸發時,CSS和GUI更新已經排隊,並且在應用:active時沒有事件觸發。

不過,我想不出任何有理由擔心這個過程需要多長時間,你可能會忘記它並繼續前進。

+0

是的你是對的。我沒有正確地問我的問題我希望鼠標關閉和呈現這個':active'僞類設置的更改結束之間的時間。例如,我注意到如果使用漸變,渲染速度會慢得多,這使得我的GUI不能很快響應。 – Nikolay 2012-08-06 13:21:18

+0

@Nikolay:在這種情況下,您可能需要使用'window.postMessage' [如此處所述](http://dbaron.org/log/20100309-faster-timeouts)來調查0ms超時。 – 2012-08-06 13:33:32