Salutation a tous
je me fabrique une ptite fonction pour faire un display des évènements dans un intranet (sauvegarde, chargement ect ect ect ...)
Comme je veut que le message apparaisse en haut a droite, et que si plusieurs message viennent en 'même' temps, ceux-si ce décale vert le bas
j'arrive pratiquement au résultat voulut ... mais...
Lors de l'apparition d'un nouveau message 'décalé', le mouvement des supérieurs premier s'arrête.
De plus j'ai mis un timeout pour que le message disparaisse au bout de 2 sec .. et .. il faut bien disparaitre le dernier, mais fais une erreur ensuite .. et les supérieurs reste ...
voici mon code ...
Merci de prendre un peu de temps pour m'aider
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 var flyingSpeed = 2; var yTop=0; var xRight=-170; var xTarget=-20; var oAlert = { creat:function(msg){ var oBox = document.createElement('DIV'); var eBox = oBase.get('.alerte'); oBox.className = 'alerte'; oBox.id = 'a'+Math.round(Math.random()*10000); if(eBox.length > 0){ oBox.style.top = (eBox.length * 20) +'px'; } else{ oBox.style.top = yTop+'px'; } oBox.style.position = 'absolute'; oBox.style.right = xRight+'px'; oBox.style.display = 'block'; oBox.innerHTML = msg; document.body.appendChild(oBox); moving = xRight; oAlert.display(oBox.id); }, display:function(id){ var mBox = oBase.get('#'+id)[0]; var moving = parseInt(mBox.style.right.split("p")[0]) + flyingSpeed; mBox.style.right = moving + 'px'; if(moving > xTarget){ box = id; setTimeout("oAlert.destruct(box)",2000); } else if(oBase.get('#'+id)[0].style.display=='block'){ box = id; setTimeout("oAlert.display(box)",5); } }, destruct:function(dBox){ document.body.removeChild(dBox); } };
edit : balise code
Partager