2013-03-08 129 views
2

滾動完成後,我想用jQuery mousemove函數觸發事件。移動鼠標後觸發事件滾動後

的問題是,通過滾動鼠標移動時觸發 (http://docs.jquery.com/Tutorials:Mouse_Position#Tracking_mouse_position),

我想觸發滾動只在事件結束了,我將鼠標移動的「真實」。

我正在使用一個非常簡潔的解決方案來查看滾動停止的時間,因此我希望在此之後完成mousemove檢查。 jQuery scroll() detect when user stops scrolling

我的想法是讀取X - 協調,只有滾動後觸發事件,如果Ÿ - 協調的變化,但我真的希望,如果我可以使用類似延遲()的setTimeout(),但這些都不是結合工作...

+0

好一種方法做到這一點(可能不是最好的方法)是綁定/解除綁定mousemove滾動/停止。檢查座標是做這件事的好方法。在滾動結束時觸發自定義事件,然後檢查鼠標的座標以查看何時應觸發所需的鼠標移動 – Huangism 2013-03-08 20:53:47

+0

謝謝!解綁方法非常棒!我甚至不必檢查這個座標:D – MMachinegun 2013-03-08 21:05:46

+0

因此,我所做的只是將scroll_start_上的mousemove和滾動_end_上的bind綁定。我不確定現在該怎麼處理這個問題,對我來說,答案是:D,還是我只是這樣離開它,也許其他人會想出更好的答案? (因爲你在評論中回覆我無法檢查:S) – MMachinegun 2013-03-08 21:13:25

回答

1

一種方式做到這一點(可能不是最好的方法)是上滾動/停止綁定/解除綁定鼠標移動。檢查座標是做這件事的好方法。在滾動結束時觸發自定義事件,然後檢查鼠標的座標以查看何時應該觸發所需的鼠標移動。

也許您可以始終綁定mousemove,但設置了一個標誌,因此當您滾動時,請設置該標誌爲false,因此mousemove不會觸發,並在滾動停止時將其設置爲true,並手動觸發mousemove。這可能比綁定/解除綁定事件更好。試一試,看看它是否可行

+0

我不確定你使用_flag_完全匹配什麼,但是我做的是,在'unbind('mousemove')之前'我檢查我的變量是否** not ** false,然後解除_mousemove_並將_variable_設置爲false。這種方式解除綁定不會經常觸發......我注意到Firefox中的差異。 :) – MMachinegun 2013-03-12 19:51:26

+0

我的建議是避免解除綁定和重新綁定。滾動時設置flag = false,滾動停止時設置flag = true。在您的mousemove事件處理程序中,檢查flag = true或false,如果爲true,則執行mousemove stuff,如果爲false,則不執行任何操作。如果你有時間可以嘗試一下,但如果沒有的話,你可以使用當前的解決方案 – Huangism 2013-03-12 20:47:08