2012-04-17 30 views
1

我已經在LayoutPanel內部將幾個GWT面板層疊在一起。我的底部面板需要鼠標事件,但是這些被頂部面板捕獲。有什麼辦法可以防止面板沉沒事件,讓這些事件被堆棧中較低的面板捕獲?在GWT面板之間轉發鼠標事件

感謝,

喬恩

回答

1

有CSS屬性pointer-events: none但不會在IE和Opera工作。對於那些(至少),我認爲你必須:

  1. 暫時隱藏高層,
  2. 發現,將被有針對性的下層(使用$doc.elementFromPoint從JSNI),
  3. 元素
  4. 然後取消隱藏更高層。
  5. fire就可以了synthetic event

別擔心,隱藏/取消隱藏將是不易察覺的用戶(瀏覽器甚至不會使它)

+0

感謝托馬斯。有沒有一種方便的方法來隱藏圖層,或者我應該從它的父級中刪除它/重新添加它嗎? – DeadPassive 2012-04-17 15:06:44

+0

另外,在調用elementFromPoint時,我應該使用clientX/clientY還是screenX/screenY?我不確定有什麼不同。 – DeadPassive 2012-04-17 15:10:58

+0

托馬斯,請你澄清最後一點關於'火綜合事件'?我有非常類似的問題:http://stackoverflow.com/questions/28022057/gwt-forward-mouse-wheel-event-to-underlying-element – damluar 2015-01-19 10:16:13