begin process at 2012 05 29 16:32:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Javascript / DHTML / Ajax

 > 

CSS

 > 

Général

 > 

Problème de DIV


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Problème de DIV

vendredi 7 août 2009 à 17:14:46 | Problème de DIV

igregbzh

Bonjour à tous voila j'effectue une petite application en javascript et la j'ai un gros problème. En fait j'arrive a déplacer et redimensionner les div que je place manuellement dans mon code mais dès que j'en dessine une nouvelle, je ne peut pas les déplacer ni les redimensionner. Merci de votre aide car la je suis vraiment bloqué.

Code HTML :
<html>

<head>
<link rel="stylesheet" media="screen" type="text/css" title="Dessin" href="dessin.css" />
<title>Dessin</title>

<!-- Script des axes qui suivent la souris -->
<script language="JavaScript">
var d;
var bouton = false;
var posx;
var posy;
var i =0;
var initx=false;
var inity=false;
var MonTableauX1 = new Array();
var MonTableauX2 = new Array();
var MonTableauY1 = new Array();
var MonTableauY2 = new Array();
var x = 0;
var y = 0;
var idSelected;


//désactiver selection
function disableselect(e){
return false
}

function reEnable(){
return true
}

if (window.sidebar){
document.onmousedown=disableselect
document.onclick=reEnable
}
//coordonnées qui suivent la souris
function infoSouris(event)
{
var xS = event.clientX;
var yS = event.clientY;
if (x > 1020 || y > 570){
document.getElementById('info').style.visibility='hidden';
}
else if (x < 20 || y < 20){
document.getElementById('info').style.visibility='hidden';
}
else{
document.getElementById('info').style.visibility='visible';
}

document.getElementById('coordonnes').value = xS + ', ' + yS;
var element = document.getElementById('info');
element.style.position = 'absolute';
element.style.left = xS + 10 + 'px';
element.style.top = yS + 10 + 'px';
}


//axes qui suivent la souris


function Pos_souris(e) {
x = e.pageX;
y = e.pageY;

document.getElementById('horizontale').style.top = y;
document.getElementById('verticale').style.left = x;

if (x > 1020 || y > 570){
document.getElementById('horizontale').style.visibility='hidden';
document.getElementById('verticale').style.visibility='hidden';
}
else if (x < 20 || y < 20){
document.getElementById('horizontale').style.visibility='hidden';
document.getElementById('verticale').style.visibility='hidden';
}
else{
document.getElementById('horizontale').style.visibility='visible';
document.getElementById('verticale').style.visibility='visible';
}
}
//activer le bouton dessin rectangle

function activerBouton(){
if (document.getElementById('boutonOn').value =="Tracer un rectangle"){
bouton = true;
document.getElementById('boutonOn').value="Tracage en cours...";
document.getElementById('boutonOn').style.border = "solid 2px #00FF00";
document.getElementById('workZone').style.cursor= "default";
document.onmousemove = Pos_souris;
}
else {
bouton = false;
document.getElementById('boutonOn').value="Tracer un rectangle";
document.getElementById('boutonOn').style.border = "";
document.getElementById('workZone').style.cursor= "default";
document.onmousemove = "";
}
}

//changement d'option dans la liste

function change(id){
idSelected = document.forms.formulaire.liste.options.selectedIndex;
document.getElementById('alerte').value = idSelected;
if(document.forms.formulaire.liste.options.selectedIndex==0){
document.getElementById('suppr').style.visibility='hidden';
document.getElementById('mod').style.visibility='hidden';
document.getElementById('x1').value = "";
document.getElementById('y1').value = "";
document.getElementById('x2').value = "";
document.getElementById('y2').value = "";
}
else{
document.getElementById('x1').value = MonTableauX1[id];
document.getElementById('y1').value = MonTableauY1[id];
document.getElementById('x2').value = MonTableauX2[id];
document.getElementById('y2').value = MonTableauY2[id];
document.getElementById('suppr').value = "Supprimer div_" + document.forms.formulaire.liste.options.selectedIndex;
document.getElementById('suppr').style.visibility='visible';
document.getElementById('mod').style.visibility='visible';
}

var divNonSelect = document.getElementsByClassName('square');
for(k=0;k<divNonSelect.length;k++)
{
divNonSelect[k].style.border = "1px solid #59A059";
}

document.getElementById('div_'+id).style.border= "3px solid #FF00FF";

}

//Suppression d'une div

function supprDiv(idtodel){
document.getElementById('workZone').removeChild(document.getElementById('div_'+idtodel));
document.forms.formulaire.liste.options.selectedIndex = 0;
document.forms.formulaire.liste.options[idtodel]=null;
}

//tracage des rectangles


function dessiner(obj,e){
if (bouton == true){
posx=0;
posy=0;
var ev=(!e)?window.event:e;
posx=ev.clientX;
posy=ev.clientY;
obj.onmousedown=function(){
if (bouton == true){
i ++;
initx=posx;
inity=posy;
d = document.createElement('div');
d.id ='div_' + i;
d.className='square';
d.name ='div_' + i;
d.style.left=initx+'px';
d.style.top=inity+'px';
document.getElementsByName('workZone')[0].appendChild(d);
d.onMouseOver=fnOnMouseOver(d.id);
d.onMouseOut=fnOnMouseOver();
document.forms.formulaire.liste.options[document.forms.formulaire.liste.options.length] = new Option(d.id,d.id);
document.forms.formulaire.liste.options.selectedIndex = i;
document.getElementById('suppr').value = "Supprimer div_" + document.forms.formulaire.liste.options.selectedIndex;

MonTableauX1[i]=posx;
MonTableauY1[i]=posy;
}
}
obj.onmouseup=function(){initx=false;inity=false;}
if(initx){
d.style.width=Math.abs(posx-initx)+'px';
d.style.height=Math.abs(posy-inity)+'px';
d.style.left=posx-initx<0?posx+'px':initx+'px';
d.style.top=posy-inity<0?posy+'px':inity+'px';
MonTableauX2[i]=(posx);
MonTableauY2[i]=(posy);

}


document.getElementById('prenom').value = d.id;
document.getElementById('x1').value = MonTableauX1[i];
document.getElementById('y1').value = MonTableauY1[i];
document.getElementById('x2').value = MonTableauX2[i];
document.getElementById('y2').value = MonTableauY2[i];

}

else {

return buton=false;
}
}
function fnOnClick(dd)
{

var divNonSelect = document.getElementsByClassName('square');
for(k=0;k<divNonSelect.length;k++)
{

divNonSelect[k].style.background = "";
divNonSelect[k].style.opacity = "";

}


document.getElementById(dd).style.background = "blue";
document.getElementById(dd).style.opacity = 0.5;
}
//Modification d'une div
function modDiv(idToMod){

}
//-----------Modification d'une div Drag and Drop-----------------//
var X_OTHER= 1;

var X_LEFT= 2;

var X_RIGHT = 3;

var Y_OTHER= 1;

var Y_UP= 2;

var Y_DOWN= 3;

var vgCurrentElement = null;

var vgCurrentPositionX = X_OTHER;

var vgCurrentPositionY = Y_OTHER;

var vgCurrentX = 0;

var vgCurrentY = 0;

var vgCurrentWidth = 0;

var vgCurrentHeight = 0;

var vgMouseX = 0;

var vgMouseY = 0;

var vgMouseDiffX = 0;

var vgMouseDiffY = 0;

var vgMouseDown = false;

var vgTimerMouse;

var vgTimerTime = 20;

function position(e)

{

vgMouseX = (navigator.appName.substring(0,3) == "Net") ? e.pageX : event.x+document.body.scrollLeft;

vgMouseY = (navigator.appName.substring(0,3) == "Net") ? e.pageY : event.y+document.body.scrollTop;

}
function fnResizeDiv()
{
if(vgCurrentElement!=null && vgCurrentElement!=undefined)
{
if (navigator.appName.substring(0,3) == "Net") {
document.getElementById(vgCurrentElement).style.left = vgCurrentX;
document.getElementById(vgCurrentElement).style.top = vgCurrentY;
document.getElementById(vgCurrentElement).style.width = vgCurrentWidth-2;
document.getElementById(vgCurrentElement).style.height = vgCurrentHeight-2;
}else {
document.getElementById(vgCurrentElement).style.left = vgCurrentX;
document.getElementById(vgCurrentElement).style.top = vgCurrentY;
document.getElementById(vgCurrentElement).style.width = vgCurrentWidth;
document.getElementById(vgCurrentElement).style.height = vgCurrentHeight;
}
}
}
function fnOnMouseDown()

{

vgMouseDown = true;

if(vgCurrentElement!=null && vgCurrentElement!=undefined)

{

//Init of size

vgCurrentX = document.getElementById(vgCurrentElement).offsetLeft;

vgCurrentY = document.getElementById(vgCurrentElement).offsetTop;

vgCurrentWidth = document.getElementById(vgCurrentElement).offsetWidth;

vgCurrentHeight = document.getElementById(vgCurrentElement).offsetHeight;



//Init of distance

vgMouseDiffX = vgMouseX-vgCurrentX;

vgMouseDiffY = vgMouseY-vgCurrentY;



//Init of position

if(vgMouseDiffX < 20 || (vgCurrentWidth-vgMouseDiffX) < 20)

{

if(vgMouseDiffX < vgCurrentWidth/2)

vgCurrentPositionX = X_LEFT;

else

vgCurrentPositionX = X_RIGHT;

}

else

vgCurrentPositionX = X_OTHER;


if(vgMouseDiffY < 20 || (vgCurrentHeight-vgMouseDiffY) < 20)

{

if(vgMouseDiffY > vgCurrentHeight/2)

vgCurrentPositionY = Y_DOWN;

else

vgCurrentPositionY = Y_UP;

}

else

vgCurrentPositionY = Y_OTHER;

vgTimerMouse = setInterval("fnOnMouseMove();", vgTimerTime);

}

}



function fnOnMouseUp()

{

vgMouseDown = false;

clearInterval(vgTimerMouse);

}



function fnOnMouseMove()

{

if(vgMouseDown && vgCurrentElement!=null && vgCurrentElement!=undefined)

{

switch(vgCurrentPositionX)

{

case X_LEFT:vgCurrentWidth += vgCurrentX-vgMouseX;

if(vgCurrentWidth<0)

vgCurrentWidth = 0;

else

vgCurrentX = vgMouseX;

break;

case X_RIGHT: vgCurrentWidth = vgMouseX-vgCurrentX;

if(vgCurrentWidth<0)

vgCurrentWidth = 0;

break;

default: break;

}

switch(vgCurrentPositionY)

{

case Y_UP:vgCurrentHeight += vgCurrentY-vgMouseY;

if(vgCurrentHeight<0)

vgCurrentHeight = 0;

else

vgCurrentY = vgMouseY;

break;

case Y_DOWN: vgCurrentHeight = vgMouseY-vgCurrentY;

if(vgCurrentHeight<0)

vgCurrentHeight = 0;

break;

default: break;

}


if(vgCurrentPositionX==X_OTHER && vgCurrentPositionY==Y_OTHER)

{

vgCurrentX = vgMouseX-vgMouseDiffX;

vgCurrentY = vgMouseY-vgMouseDiffY;

}

fnResizeDiv();

}

}



function fnOnMouseOver(sSelectedElementName)

{

if(!vgMouseDown)

{

if(sSelectedElementName==null && sSelectedElementName!="undefined")

{

vgCurrentElement = null;

}

else

{

vgCurrentElement = sSelectedElementName;

}

}

}

document.onmousemove = position;
//-----------Modification d'une div Drag and Drop-----------------//
</script>

</head>
<body>

<div id='workZone' name='workZone' onmousemove="infoSouris(event), dessiner(this,event);" onMouseDown="fnOnMouseDown();" onMouseUp="fnOnMouseUp();">
<div id="info">
<input type="text" id="coordonnes" value="inconnues" readonly="readonly" size="8" />
</div>
<div id=horizontale></div>
<div id=verticale></div>
<div id="divTest" class='square' name="divTest" onMouseOver="fnOnMouseOver('divTest');" onMouseOut="fnOnMouseOver();" onClick="fnOnClick('divTest');">

</div>





<div id="divTest2" class='square' name="divTest2" onMouseOver="fnOnMouseOver('divTest2');" onMouseOut="fnOnMouseOver();" onClick="fnOnClick('divTest2');">

</div>


</div>

<div id='menu'>
<input type="button" id='boutonOn' onclick="activerBouton()" value="Tracer un rectangle"/></br>


<form name="formulaire" id="formulaire">
<select name="liste" id="liste" onchange="change(this.selectedIndex)">
<option value="null">Selectionner un rectangle</option>
</select>
</form>

<form name='info'>
<input id="prenom" type="hidden"/></br>
x1 : <input id="x1" value='test' readonly="readonly" size="5"/></br>
y1 : <input id="y1" readonly="readonly" size="5" value="" /></br>
x2 : <input id="x2" readonly="readonly" size="5" value="" /></br>
y2 : <input id="y2" readonly="readonly" size="5" value="" /></br>
</form>
<input type="button" id='suppr' onclick="supprDiv(document.forms.formulaire.liste.options.selectedIndex)" value='Supprimer' /></br>
<input id='alerte' /></br>
</br>
<button onclick="javascript:location.reload();">Recharger la page</button></br>
</div>
</body>
</html>


mon CSS:
Code HTML :
body{

background-color: #FFFFFF;
margin: 20;
overflow: hidden;
padding: 0;
}

#workZone{
border: 2px;
border-color: black;
border-style: solid;
float:left;
width: 1000px;
height: 550px;
}

#divTest {

left: 500px;

width: 320px;

height: 240px;

position: absolute;

/*BACKGROUND-IMAGE: url(../images/bg.gif);*/

border: 1px solid blue;

}

#divTest2 {

top: 300px;

width: 100px;

height: 200px;

position: absolute;

border: 1px solid red;

}
.square {
border: 1px solid #59A059;
position: absolute;
}

lundi 10 août 2009 à 16:31:09 | Re : Problème de DIV

dvdstory

Membre Club

Je veux pas être méchant mais si ta pas de réponse faut pas t'étonner.
On veut bien d'aider mais on veut pas se taper la lecture et l'interprétation de tes 250 lignes de code.

Utilise Firebug avec Firefox pour trouver la ligne qui bug.
Ou insère les lignes qui correspondent à ton problème.
Tu ne devrais pas publier + de 30 lignes de codes.



Cette discussion est classée dans : code, var, false, border, if


Répondre à ce message

Sujets en rapport avec ce message

Gestion de touches F5, BACKSPACE et ENTER (javascript et jQuery) [ par elara1970 ] Bonjour, Je souhaiterais gérer certaines touches du clavier en javascript (et jQuery). Le code fonctionne bien sous IE mais pas trop avec FF. Cepend Formulaire Newsletter facebook FBML/FBJS [ par quinton75 ] Bonjour,[^^clinoeil1][^^clinoeil1] Je souhaite intégrer un formulaire d'inscription à ma Newsletter sur ma page facebook Mon code source HTML d'inté Intégrer du javascirpit sur facebook (FBML/FBJS) [ par quinton75 ] Hello,[^^clinoeil1][^^clinoeil1][^^clinoeil1] Petite question à pose. Je souhaite intégrer un formulaire d'inscription à ma Newsletter sur ma page FBJS : ou mettre le javascript étant dans <head> en html sans le head en fbjs ? [ par quinton75 ] [code=js] Webform var dtCh='/'; var minYear=1900; var maxYear=2100; function isValidInteger(s){ var i; for(i= Problème Bizarre if(var!= NULL) en javascript [ par midoxe ] Bonjour, je me retrouve avce un problème BIZARRE vraiment [^^confus2] !!!!! voici mon code : [code=as]function PromptMessage() { var saisie = W3C et & dans un code javascript [ par nicolazik ] Bonjour, j'ai un soucis avec un code du générateur de bannière aléatoire, je l'utilise pour afficher aléatoirement des publicités, or les liens des i synchroniser une requete ajax asynchrone [ par AlexN ] Bonjour,Je cherche à synchroniser une requete ajax asynchrone. Et je prend une grosse suée.Je fais appel de manière cyclique à une requete ajax en mod probleme incompatibilité IE-FF svp HELP !! [ par ju0123456789 ] Bonjour, depuis plusieurs jours, je mesuis pris la tête pour mon script de mon site web de commande en ligne, mais malheureusement il ne marche pas so Affichier un texte avec la position X et Y [ par bshaka ] Bonjour à tous,j'ai trouvé sur le web cette fonction qui affiche date et heure à une position x et y, pour l'appeler, je fais :InitHorloge(265,56,"fon Affichage d'horloge [ par bshaka ] Bonjour à tous,J'ai trouvé cette fonction pour afficher l'horloge à une position X Y sur le net, sauf qu'elle n'affiche pas l'horloge à la bonne posit


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,796 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales