|
|
|
|
Merci ;)
|
J'ai pas regarder tout ton code mais il y a déjà un probleme ici (à la fin de ton code):
<div id="MonLayer01"><table><tr><td onclick="testClick('MonLayer01')"></td></tr></table></div>
Ta fonction testClick ne marche que lorsque 'on clique sur une cellule du tableau et non pas sur le layer. On ne pas reprendre l'id aussi facliement. Dans ta fonction get_mouse(), je pense pas qu'il faille mettre LayerID en parametre (il ne sera pas pris en compte), et de tout facon tu le met en variable global dans la fonction testClick(). |
<script>
clickOui = false;
bloc_x = 10;
bloc_y = 10;
function testClick(MonLayer) {
LayerID = MonLayer;
base_x = x-bloc_x;
base_y = y-bloc_y;
clickOui=true;
}
function testClick2() {
clickOui=false;
}
function get_mouse(e, LayerID)
{
x = (navigator.appName.substring(0,3) == "Net") ? e.pageX : event.x+document.body.scrollLeft;
y = (navigator.appName.substring(0,3) == "Net") ? e.pageY : event.y+document.body.scrollTop;
if(clickOui && document.getElementById)
{
bloc_x = x-base_x;
bloc_y = y-base_y;
}
document.getElementById(LayerID).style.left = bloc_x
document.getElementById(LayerID).style.top = bloc_y
}
if(navigator.appName.substring(0,3) == "Net")
document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = get_mouse;
</script>
<div id="MonLayer01" onclick="testClick('MonLayer01')"><table><tr><td>MoVE ME</td></tr></table></div>
Voilà mais ça ne fonctionne toujours pas... |
J'ai retouché un peu le code et je l'ai testé sous firefox, ca marche (par contre je t'ai dit une bétise, faut laisser le onclick a ca place) :
<script>
clickOui = false;
bloc_x = 10;
bloc_y = 10;
var LayerID=null;
function testClick(MonLayer){
LayerID = MonLayer;
base_x = x-bloc_x;
base_y = y-bloc_y;
clickOui=!clickOui;
}
function testClick2(){
clickOui=false;
}
function get_mouse(e){
x = (navigator.appName.substring(0,3) == "Net") ? e.pageX : event.x+document.body.scrollLeft;
y = (navigator.appName.substring(0,3) == "Net") ? e.pageY : event.y+document.body.scrollTop;
if(clickOui && document.getElementById){
bloc_x = x-base_x;
bloc_y = y-base_y;
}
if(document.getElementById(LayerID)){
document.getElementById(LayerID).style.left = bloc_x
document.getElementById(LayerID).style.top = bloc_y
}
}
if(navigator.appName.substring(0,3) == "Net"){
document.captureEvents(Event.MOUSEMOVE);
}
document.onmousemove = get_mouse;
</script>
<div id="MonLayer01" style="position:absolute;"><table><tr><td onclick="testClick('MonLayer01')">MoVE ME</td></tr></table></div> |
Merci ça marche nickel ;)
<script>
clickOui = false;
function testClick(MonLayer){
LayerID = MonLayer;
base_x = x-document.getElementById(LayerID).style.left;
base_y = y-document.getElementById(LayerID).style.top;
clickOui = true;
}
function testClick2(){
clickOui = false;
}
function get_mouse(e){
x = (navigator.appName.substring(0,3) == "Net") ? e.pageX : event.x+document.body.scrollLeft;
y = (navigator.appName.substring(0,3) == "Net") ? e.pageY : event.y+document.body.scrollTop;
if(clickOui && document.getElementById){
bloc_x = x-base_x;
bloc_y = y-base_y;
}
document.getElementById(LayerID).style.left = bloc_x
document.getElementById(LayerID).style.top = bloc_y
}
if(navigator.appName.substring(0,3) == "Net"){
document.captureEvents(Event.MOUSEMOVE);
}
document.onmousemove = get_mouse;
</script>
<div id="MonLayer01" style="position:absolute; left:10px; top:20px;"><table><tr><td onmousedown="testClick('MonLayer01')" onmouseup="testClick2()">MoVE ME 1</td></tr></table></div>
<div id="MonLayer02" style="position:absolute; left:100px; top:20px;"><table><tr><td onmousedown="testClick('MonLayer02')" onmouseup="testClick2()">MoVE ME 2</td></tr></table></div>
donc ça ne fonctionne pas pourtant document.getElementById(LayerID).style.top deverai donnée une position... Voilà je te remerci encore pour ton aide :) |
J'ai fait les modifications suivante :
LayerID=null; dans la fonction testClick(), quand tu récupère les positions, tu les as de la forme "10px". Il faut les transformer en entier : base_x = x-parseInt(document.getElementById(LayerID).style.left); base_y = y-parseInt(document.getElementById(LayerID).style.top); Dans la foinction get_mouse, il faut tester si le LayerID est valide, (sinon erreur qui peut ralentir le navigateur, ou stoper le script): if(document.getElementById(LayerID)){
Ce qui donne: <script>
clickOui = false;
bloc_x=10;
bloc_y=10;
LayerID=null;
function testClick(MonLayer){
LayerID = MonLayer;
base_x = x-parseInt(document.getElementById(LayerID).style.left);
base_y = y-parseInt(document.getElementById(LayerID).style.top);
clickOui = true;
}
function testClick2(){
clickOui = false;
}
function get_mouse(e){
x = (navigator.appName.substring(0,3) == "Net") ? e.pageX : event.x+document.body.scrollLeft;
y = (navigator.appName.substring(0,3) == "Net") ? e.pageY : event.y+document.body.scrollTop;
if(clickOui && document.getElementById){
bloc_x = x-base_x;
bloc_y = y-base_y;
}
if(document.getElementById(LayerID)){
document.getElementById(LayerID).style.left = bloc_x;
document.getElementById(LayerID).style.top = bloc_y;
}
}
if(navigator.appName.substring(0,3) == "Net"){
document.captureEvents(Event.MOUSEMOVE);
}
document.onmousemove = get_mouse;
</script>
<div id="MonLayer01" style="position:absolute; left:10px; top:20px;"><table><tr><td onmousedown="testClick('MonLayer01')" onmouseup="testClick2()">MoVE ME 1</td></tr></table></div>
<div id="MonLayer02" style="position:absolute; left:100px; top:20px;"><table><tr><td onmousedown="testClick('MonLayer02')" onmouseup="testClick2()">MoVE ME 2</td></tr></table></div> |
Bon bah voilà, un SUPER MEGA MERCI :)
|
"tu sais comment on peux faire pour agrandir? (les fonctions)"
|
Bon bah demain ;) je vais a la FNAC :)
|
Effectivment pour la taille du layer faut faire la même chose mais avec height et width.
|
Pour que ce sois tout les bords? tu fais comment?
|
Pour faire le redimendionnement sur tout les bords, j'ai créer des calques (div) qui sont collé à chaque bords et c'est lorsque l'on clique sur l'un d'eux que l'on fait le redimentionnment (marche très bien sous Firefox, pas sous IE mais je suis dessus).
document.getElementsByTagName('DIV');
Ce qui te renvoie un tableau avec toutes les DIV de la page. Apres tu fait une petite boucle dessus pour avoir l'id : var tab_div=document.getElementsByTagName('DIV');
for(var i=0;i<tab_div.length;i+){
alert(tab_div[i].id);
} |
Voilà http://config.lan.free.fr/ccm/
|
Voilà ;)
|