Modification d'une fonction javascript

Notilius -  
Mimiste Messages postés 1149 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
J'ai trouver une fonction en navigan sur le net pour deplacer un div ou autre via la souris dans une page html .
J'aimerai pourvoir bloquer mon div qui ce deplace dans un <td> d'un tableau pour que celui-ci ne ce deplace pas sur toute la page web .
Je ne connai rien au javascript en esperant que cela soi réalisable merci a vous .

Voici le code :

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Document sans titre</title>

<SCRIPT LANGUAGE=JavaScript>

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 = 10;


//----------------------------//
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)
{
document.getElementById(vgCurrentElement).style.left = vgCurrentX;
document.getElementById(vgCurrentElement).style.top = vgCurrentY;
document.getElementById(vgCurrentElement).style.width = vgCurrentWidth;
document.getElementById(vgCurrentElement).style.height = vgCurrentHeight;
document.getElementById('hauteur').value = vgCurrentX;
document.getElementById("largeur").value= vgCurrentY;
document.getElementById('taillel').value = vgCurrentWidth;
document.getElementById("tailleh").value= 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 < 10 || (vgCurrentWidth-vgMouseDiffX) < 10)
{
if(vgMouseDiffX < vgCurrentWidth/2)
vgCurrentPositionX = X_LEFT;
else
vgCurrentPositionX = X_RIGHT;
}
else
vgCurrentPositionX = X_OTHER;


if(vgMouseDiffY < 10 || (vgCurrentHeight-vgMouseDiffY) < 10)
{
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;
}
}
}


//----------------------------//
function fnOnLoad()
{
if(navigator.appName.substring(0,3) == "Net")
document.captureEvents(Event.MOUSEMOVE);
document.onmousemove = position;

//fnResizeDiv();
}

</script>
</head>
<body onLoad="fnOnLoad();" onMouseDown="fnOnMouseDown();" onMouseUp="fnOnMouseUp();">
<table width="300" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="300" height="400" align="left" valign="top"><div id="divTest2" name="divTest2" onMouseOver="fnOnMouseOver('divTest2');" onMouseOut="fnOnMouseOver();"><img src="test.JPG" width="100%" height="100%" /></div>
Position dans l'image depuis le bord <input name="hauteur" type="text" id="hauteur">
Position dans l'image depuis le haut<input type="text" name="largeur" id="largeur">
<input type="text" name="taillel" id="taillel">
<input type="text" name="tailleh" id="tailleh">
</td>
</tr>
</table>
</body>
</html>


Merci d'avance
A voir également:

1 réponse

Mimiste Messages postés 1149 Date d'inscription   Statut Membre Dernière intervention   206
 
Bonjour
En modifiant un peu le script

remplace la fonction fnResizeDiv par celle la
ici le deplacement sera bloqué a 500 de largeur et 500 de hauteur

//----------------------------//
function fnResizeDiv()
{
if(vgCurrentElement!=null && vgCurrentElement!=undefined)
{
if(vgCurrentWidth <= 500)
{
document.getElementById(vgCurrentElement).style.left = vgCurrentX;
document.getElementById(vgCurrentElement).style.width = vgCurrentWidth;
document.getElementById('hauteur').value = vgCurrentX;
document.getElementById('taillel').value = vgCurrentWidth;
}

if(vgCurrentHeight <= 500)
{
document.getElementById(vgCurrentElement).style.top = vgCurrentY;
document.getElementById(vgCurrentElement).style.height = vgCurrentHeight;
document.getElementById("largeur").value= vgCurrentY;
document.getElementById("tailleh").value= vgCurrentHeight;
}
}
}
-1