Использование спрайтовых изображений с setDragImage - PullRequest
2 голосов
/ 25 сентября 2011

Я пытаюсь реализовать перетаскивание HTML5 с помощью специального изображения перетаскивания, которое появляется за курсором.Это можно сделать с помощью setDragImage и прекрасно работает с автономными изображениями, т. Е. Созданными с помощью new Image.

. Однако, чтобы повысить скорость загрузки страницы, я хотел бы объединить эти изображения в одно изображение, используя спрайты.и трюк background-position.

Для реализации спрайтов для использования в setDragImage функциональных возможностей перетаскивания удобно использовать тот факт, что элементы можно использовать в качестве перетаскиваемого изображения: создайте <div>,установите его размер, фоновое изображение и положение, и передайте это div в setDragImage.

Однако, похоже, что эти изображения должны быть видны в DOM.Похоже, что «снимок экрана» элемента создается, когда вы вызываете setDragImage с элементом DOM, и когда элемент либо скрыт, либо не является частью DOM, снимок экрана становится пустым, и в результате изображение не отображаетсяпри перетаскивании.

Пожалуйста, посмотрите на эту скрипку .Перетаскивание двух текстовых div s отлично работает с перетаскиваемым изображением.Однако после нажатия кнопки, чтобы скрыть изображение div s, при перетаскивании текста div s изображение перетаскивания больше не отображается.

Мне нужно, чтобы это работало только в Google Chrome.

Как я могу использовать изображения спрайтов с перетаскиванием HTML5 (setDragImage), в то время как div, содержащие спрайты в качестве фоновых изображений, скрыты или отсутствуют в DOM?Или есть другой метод использования спрайтов с setDragImage?

1 Ответ

1 голос
/ 25 сентября 2011

Если бы я был тобой, я бы бросил спрайт и использовал встроенные изображения в кодировке base64. Если все, что вы хотите сделать, это увеличить скорость загрузки страницы и пропустить накладные расходы на запрос, тогда он должен работать точно так же, и ваша проблема должна быть решена:)

...