我正试图实现HTML5拖放与自定义拖动图像,它出现在光标后面。这可以用setDragImage
来完成,并且可以很好地处理独立的图像,即用new Image
创建的图像。
但是,为了提高页面加载速度,我想使用sprites和background-position
技巧将这些图像合并成一个图像。
要实现在拖放功能的setDragImage
中使用的sprites,可以将元素用作拖动图像的事实非常方便:创建一个<div>
,设置它的大小、背景图像和位置,并将该div
传递到setDragImage
。
但是,这些图像似乎必须在DOM中可见。当使用DOM元素调用setDragImage
时,元素的“屏幕截图”看起来像是生成的,当元素隐藏或不属于DOM时,屏幕截图为空,因此在拖动时不会显示图像。
请看一下this fiddle。拖动两个文本div
s可以很好地处理拖动图像。但是,在单击按钮以隐藏图像div
s之后,拖动文本div
s不会使拖动图像再显示出来。
我只需要在谷歌浏览器上运行这个程序。
当包含精灵作为背景图像的setDragImage
s在DOM中隐藏或不隐藏时,如何使用带有HTML5拖放(div
)的精灵图像?或者,有没有另一种技巧使用带有setDragImage
的sprite?
最佳答案
如果我是你,我会放下精灵,使用内联base64编码的图像。如果您只想提高页面加载速度并跳过请求开销,那么它应该可以正常工作,您的问题应该得到解决:)