カーソルの後ろに表示されるカスタムドラッグイメージでHTML5ドラッグアンドドロップを実装しようとしています。これはsetDragImage
で行うことができ、スタンドアロンイメージではうまく機能します(new Image
で作成)。setDragImageでスプライトイメージを使用する
しかし、ページの読み込み速度を向上させるために、これらの画像をスプライトとbackground-position
トリックを使用して1つの画像に結合したいと考えています。
ドラッグのsetDragImage
に使用するスプライトを実装した機能を削除するには、要素はドラッグイメージとして使用することができるという事実が便利になります:<div>
を作成し、その大きさと背景画像と位置を設定し、それを渡すdiv
〜setDragImage
。
ただし、これらの画像はDOM内に表示されている必要があります。 setDragImage
をDOM要素で呼び出すと、要素の「スクリーンショット」が作成され、要素が非表示になっているかDOMの一部でない場合、スクリーンショットは空で、結果としてドラッグ時に画像は表示されません。
this fiddleをご覧ください。 2つのテキストdiv
をドラッグすると、ドラッグイメージが正常に動作します。ただし、画像div
を非表示にするボタンをクリックした後で、テキストdiv
をドラッグしてもドラッグ画像が表示されなくなります。
これはGoogle Chromeでのみ動作する必要があります。
スプライトを背景イメージとして含むdiv
がDOMに隠されているかどうかにかかわらず、HTML5ドラッグアンドドロップ(setDragImage
)でスプライトイメージを使用するにはどうすればよいですか?または、setDragImage
でスプライトを使用する別のテクニックがありますか?
インラインbase64イメージでは、スプライトイメージの一部を切り取ることを考えました'