我有一個角directive
纏繞D3 graph
。我已經創建了一個tooltip
,並且我處理了和'mouseout'
中的visibility
父元素,我還處理工具提示,以便它隨鼠標移動。鼠標移動速度比提示更快
工具提示是absolute
。
問題是,當我移動鼠標指針的速度足夠快時,即使鼠標指針仍在指定區域內,也會調用父級的mouseout
事件。我登錄並發現,發生這種情況的原因是,有時鼠標指針(快速移動時,工具提示位置未如此快速更新)懸停在工具提示上,該提示絕對定位而不是父級的一部分。
這會產生一些困難,因爲父元素的mouseout
我也在改變另一個元素的可見性,所以它給快速鼠標移動帶來波動/閃爍效果。
我不確定這是預期行爲還是特定於D3或角度。
這裏是一個小提琴: http://jsfiddle.net/6bQA8/5/
最初顯示的text and polylines
,他們會hide
當hovered
在任何的圓形切片。 上hover
通過任何pie slices
的,你會得到一個tooltip
,如果您移動mouse
,該tooltip
也移動,如果移動mouse
夠快,檢查console
,你會看到"tooltip hovered"
,還對用戶界面你會看到閃爍的text and polylines
應該是visible
從mouseout
切片。
在理想的情況下,不應該調用「tooltip hovered」,因爲tooltip
總是隨mouse
更新,並且它不低於pointer
。
PS:要解決這個問題的方法之一是增加pointer-events:none
到提示或增加從指針工具提示offset
,但我更想知道爲什麼發生這種情況,如果是這樣的框架的限制或瀏覽器或代碼中的錯誤。此外,因爲我稍後重複使用相同的工具提示對象來進行點擊,所以當時我將不得不刪除pointer-events:none
,並且在UI中增加offset
看起來不太好。而且,這兩種方法實際上都是黑客攻擊,而不是正確的解決方案。
你真的應該給我們一些'code'用,最好連工作小提琴。同樣,如果你達到目標,你打算如何關閉工具提示? –
@IvanModric添加了一個小提琴。該工具提示會在mouseout上關閉,這是正確的行爲,但由於移動鼠標足夠快地懸停在工具提示本身上,因此調用了鼠標輸出,這不是理想的行爲。 – gaurav5430