Sehr Unlogisch8besonders für mich ih bin nur 14 xDD)
brauche mal pls hilfe -.-
weil ich versuche einen virtuellen onlindesktop zu erstellen und arbeite grade an verschieben von elementen ...
das movehelper element soll sich beim ersten masklick so ausdehnen das es die ganze seite besetzt . das klappt schon und dann soll es die aktuelle position ermitten und das objekt dorthin verschieben.
dabei stößt man denn auf einen dumme bug(glaubich)
ich hab eine variable angelegt für die x koordinate:
|
Javascript-Quelltext
|
1
|
var $x = objLeft+x-clickX;
|
der werd objLeft ist im beispiel 500
der für x ist 314
und clickX = 587
dabei kommt jedoch ein ergebniss von rund 500.000 raus...
wer kann mir helfen???
der komplette code ist etwas zu kompliziert für ein forum...
aber ich poste mal:
|
HTML
|
1
2
3
4
5
6
|
<script language="javascript">
var objLeft = "500";
var objTop = "100";
var objClickX = 0;
var objClickY = 0;
var objMove = 0;</script><div id="obj" style="-moz-box-shadow: 0px 0px 100px red;text-align: center;width: 500px;background-image: url(../SYSTEM/Themes/Works-OS-Standart/PNG/Widgets/Background.png);position: absolute;top: 100px;left: 500px;opacity: 0.9;"><div id="objTitle" style="height: 20px;width: 500px;background-image: url(../SYSTEM/Themes/Works-OS-Standart/PNG/Widgets/Top.png);">funXt net</div></div><div id="objMovehelper" onmousedown="if(objMove==0){objMove=1;objX = xPos;objY = yPos;this.style.left = '0px';this.style.top = '0px';this.style.width = '100%';this.style.height = '100%';}else{objLeft = moveObject('obj',objX,objY,xPos,yPos,objLeft,objTop);objTop = objTop+yPos-objY;this.style.left = objLeft+'px';this.style.top = objTop+'px';this.style.width = '500px';this.style.height = '20px';objMove = 0;}" onmousemove="if(objMove==1){moveObject('obj',objX,objY,xPos,yPos,objLeft,objTop);}" style="position: fixed;top: 100px;left: 500px;width: 500px;height: 20px;background-color: rgba(255,0,0,0.5);"></div>
|
|
Javascript-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
function moveObject(obj,clickX,clickY,x,y,objLeft,objTop){
var $x = objLeft+x-clickX;
var $y = objTop+y-clickY;
var xobj = document.getElementById(obj);
var xobjMh = document.getElementById(obj+'Movehelper');
/*if($x+128>=xobjMh.offsetWidth){
xobj.style.position = "fixed";
xobj.style.left = xobjMh.offsetWidth-xobj.offsetWidth-10+'px';
xobj.style.top = $y+"px";
var objLeftX = xobjMh.offsetWidth-xobj.offsetWidth-10;
}
else{*/
var $x = objLeft+x-clickX;
xobj.style.position = "fixed";
xobj.style.left = $x+"px";
xobj.style.top = $y+"px";
var objLeftX = $x;
//}
alert($x+"="+objLeft+"+"+x+"-"+clickX);
var objLeftX = 500;
return objLeftX
}
|
dabei sind die werde yPos und xPos die jeweiligen bildschirmkoordnaten ...
aber das ergebniss ist ziemleich seltsam...
ein ergebniss wiegesagt über 500.000 xDD