Bonjour,

En utilisant le Drag & Drop de HTML5, je souhaite afficher une image au moment où l'on commence à déplacer l'objet (onDragStart), grâce à la fonction .setDragImage().

Sur Chrome (dernière version) cela marche correctement.
Sur Firefox (dernière version) cela marche uniquement si on effectue la démarche une deuxième fois.

Voici mon code:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<!DOCTYPE HTML>
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="content-type"/>
<title>HTML5 Drag and drop demonstration</title>
<style type="text/css">
#boxA, #boxB { 
  float:left; width:200px; height:200px; padding:10px; margin:10px;border: 1px solid #CCC;
}
 
#drag {
  width:50px; height:50px; padding:5px; margin:5px;background-color: grey;
  -webkit-user-drag: element;
  -moz-user-select:none;
}
.image {
  width:50px; height:50px; padding:5px; margin:5px;background-color: blue;
  -moz-user-select:none;
}
</style>
<script type="text/javascript">
function dragStart(ev) {
        debugger;
    ev.dataTransfer.effectAllowed='move';
    ev.dataTransfer.setData("Text", ev.target.getAttribute('id'));
        var maImgTemp = document.createElement("img");
        maImgTemp.src = "test.png";
        ev.dataTransfer.setDragImage(maImgTemp,0,0);
    return true;
}
 
function dragEnter(ev) {
    var idelt = ev.dataTransfer.getData("Text");
    return true;
}
 
function dragOver(ev) {
    return false;
}
 
function dragDrop(ev) {
        var maDiv = document.createElement("div");
        maDiv.id = 'drag2';
        maDiv.className = 'image';
    ev.target.appendChild(maDiv);
    ev.stopPropagation();
    return false;
}
 
</script>
</head>
<body>
    <div id="boxA">
      <div id="drag" draggable="true" ondragstart="return dragStart(event)"></div>
	</div>
    <div id="boxB" ondragenter="return dragEnter(event)" ondragover="return dragOver(event)" ondrop="return dragDrop(event)"></div>
</body>
</html>
Merci par avance pour votre aide, Isiker.