2012-10-11 126 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