2012-10-11 127 views
2

我正在使用GWT 2.4拖放API拖動元素以在小部件之間進行數據傳輸。實現拖放行爲很簡單,但在拖動元素時更改光標時遇到問題。 我已經做了一些研究,並且發現了一些關於如何實現這一點的文章。GWT 2.4 HTML 5拖放APIS - 拖動時更改光標

這篇文章http://blog.vjeux.com/2012/css/css-cross-browser-drag-cursor.html暗示可以通過將光標屬性設置爲我們想要的任何可接受值來完成。我試過(光標:-webkit-拖動;或光標:移動;)在要拖動的元素或元素可以放下的元素,但只在光標圖標的右下角添加一個小圖像。

在此http://www.html5rocks.com/en/tutorials/dnd/basics/接過一看,這是說,光標(效果)可以拖動或通過設置effectAlloweddropEffect來數據傳遞物體落下時被改變。儘管GWT拖放API沒有公開任何這些屬性,但我可以通過JSNI來設置它們,但效果與之前一樣(使用CSS)。

我在同一主題上發現了這些問題HTML5 Drag & Drop Change icon/cursor while draggingChanging Mouse Cursor for HTML5 Drag Drop Files (GMail Drag Drop),但似乎沒有任何幫助在拖動時實際更改/替換圖標。

任何幫助表示讚賞。

測試環境:

的Ubuntu 12.04.1 鉻22個

乾杯,

回答

0

我想最簡單的方法是使用:

RootPanel.getBodyElement().getStyle().setCursor(Cursor.MOVE); 

每當你開始移動和:

RootPanel.getBodyElement().getStyle().setCursor(Cursor.DEFAULT); 

每當你完成。你

也可以設置CSS屬性:

cursor: whatever; 

在任何元素你想要的。您通常會使用這樣的:

div.over-this-div-the-cursor-becomes-different:hover { 
    cursor: move; 
} 

見:http://www.w3schools.com/cssref/pr_class_cursor.asp

+0

這招的setCursor不似是如果在DND –

+0

感謝您的答覆的聲響時工作。我試過你所建議的,但沒有奏效。我已經擺弄這個帖子的例子http://stackoverflow.com/questions/10119514/html5-drag-drop-change-icon-cursor-while-dragging,但光標沒有改變。如果在拖動時可以更改光標,我還沒有弄明白。可能不會。大部分我檢查過的例子在拖動之前設置光標。我必須繼續挖掘或者只是得到解決辦法。 乾杯 – orangeeli

+0

嗨orangeeli。對不起,但看起來,現在是不可能的,至少在Firefox中。我剛剛發現這個https://developer.mozilla.org/en-US/docs/DragDrop/DataTransfer#mozCursor對不起,我的不方便的答案。 – newnoise