28. november 2000 - 08:36Der er
21 kommentarer og 1 løsning
x og y position i DHTML
Jeg har brug for at vide om man kan finde positionen på x og y på et objekt i ns. Jeg vil gerne hvis der kunne blive vist et eksempel. Jeg har selv undersøgt sagen og fundet ud af, at man nok ikke kan. Men jeg giver ikke op uden at jeg har afprøvet alle muligheder. Der kunne jo være en af jer som viste hvordan. lip
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">
<html> <head> <title>ghtml</title> <script language=\"javascript\"> function hidegLayer(){ if(document.layers) //netscape 4 document.gLayer.visibility = \"hidden\"; else if(document.all) //explorer 4 and 5 document.all.gLayer.style.visibility = \"hidden\"; else if(document.getElementById) //netscape 6 and explorer 5 document.getElementById(\"gLayer\").style.visibility = \"hidden\"; }
function showgLayer(){ if(document.layers) //netscape 4 document.gLayer.visibility = \"visible\"; else if(document.all) //explorer 4 and 5 document.all.gLayer.style.visibility = \"visible\"; else if(document.getElementById) //netscape 6 and explorer 5 document.getElementById(\"gLayer\").style.visibility = \"visible\"; }
function movegLayerBy(x,y){ if(document.layers) //netscape 4 document.gLayer.moveBy(x,y); else if(document.all){ //explorer 4 and 5 var left = document.all.gLayer.style.pixelLeft; var top = document.all.gLayer.style.pixelTop; document.all.gLayer.style.left = (left + x); document.all.gLayer.style.top = (top + y); } else if(document.getElementById){ //netscape 6 and explorer 5 var left = parseInt(document.getElementById(\"gLayer\").style.left); var top = parseInt(document.getElementById(\"gLayer\").style.top); document.getElementById(\"gLayer\").style.left = (left + x); document.getElementById(\"gLayer\").style.top = (top + y); } }
function movegLayerTo(x,y){ if(document.layers) //netscape 4 document.gLayer.moveTo(x,y); else if(document.all){ //explorer 4 and 5 document.all.gLayer.style.left = x; document.all.gLayer.style.top = y; } else if(document.getElementById){ //netscape 6 and explorer 5 document.getElementById(\"gLayer\").style.left = x; document.getElementById(\"gLayer\").style.top = y; } }
var x; var y;
function findXY(){ if(document.layers){ //netscape 4 x = document.gLayer.left; y = document.gLayer.top; } else if(document.all){ //explorer 4 and 5 x = document.all.gLayer.style.pixelLeft; y = document.all.gLayer.style.pixelTop; } else if(document.getElementById){ //netscape 6 and explorer 5 x = parseInt(document.getElementById(\"gLayer\").style.left); y = parseInt(document.getElementById(\"gLayer\").style.top); } document.form.x.value = x; document.form.y.value = y; }
function writeItToLayer(what){ if(document.layers){ //netscape 4 document.gLayer.document.write(what); document.gLayer.document.close(); } else if(document.all){ //explorer 4 and 5 document.all.gLayer.innerHTML = what; } else if(document.getElementById) //netscape 6 and explorer 5 document.getElementById(\"gLayer\").innerHTML = what; } </script> </head>
Jeg er dybt taknemlig, det virker som om du har styr på det. Jeg har egentlig et spg til (du skal nok få flere point) Når jeg nu har fundet X og Y Skal jeg bruge en function som plusser f.eks 250 til x og 300 til y. Det er fordi jeg ud fra et objekt skal udregne hvor et andet objekt skal ligge. dvs. de nye kordinater skal jeg indsætte i min objekt nr 2´s top og left. Er det forståeligt.
<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">
<html> <head> <title>ghtml</title> <script language=\"javascript\"> function hidegLayer(){ if(document.layers) //netscape 4 document.gLayer.visibility = \"hidden\"; else if(document.all) //explorer 4 and 5 document.all.gLayer.style.visibility = \"hidden\"; else if(document.getElementById) //netscape 6 and explorer 5 document.getElementById(\"gLayer\").style.visibility = \"hidden\"; }
function showgLayer(){ if(document.layers) //netscape 4 document.gLayer.visibility = \"visible\"; else if(document.all) //explorer 4 and 5 document.all.gLayer.style.visibility = \"visible\"; else if(document.getElementById) //netscape 6 and explorer 5 document.getElementById(\"gLayer\").style.visibility = \"visible\"; }
function movegLayerBy(x,y){ if(document.layers) //netscape 4 document.gLayer.moveBy(x,y); else if(document.all){ //explorer 4 and 5 var left = document.all.gLayer.style.pixelLeft; var top = document.all.gLayer.style.pixelTop; document.all.gLayer.style.left = (left + x); document.all.gLayer.style.top = (top + y); } else if(document.getElementById){ //netscape 6 and explorer 5 var left = parseInt(document.getElementById(\"gLayer\").style.left); var top = parseInt(document.getElementById(\"gLayer\").style.top); document.getElementById(\"gLayer\").style.left = (left + x); document.getElementById(\"gLayer\").style.top = (top + y); } }
function movegLayerTo(x,y){ if(document.layers) //netscape 4 document.gLayer.moveTo(x,y); else if(document.all){ //explorer 4 and 5 document.all.gLayer.style.left = x; document.all.gLayer.style.top = y; } else if(document.getElementById){ //netscape 6 and explorer 5 document.getElementById(\"gLayer\").style.left = x; document.getElementById(\"gLayer\").style.top = y; } }
var x = 100; var y = 100;
function findXY(){ if(document.layers){ //netscape 4 x = document.gLayer.left; y = document.gLayer.top; } else if(document.all){ //explorer 4 and 5 x = document.all.gLayer.style.pixelLeft; y = document.all.gLayer.style.pixelTop; } else if(document.getElementById){ //netscape 6 and explorer 5 x = parseInt(document.getElementById(\"gLayer\").style.left); y = parseInt(document.getElementById(\"gLayer\").style.top); } document.form.x.value = x; document.form.y.value = y; }
function placegLayer2(){ newX = x + 200; newY = y + 300; if(document.layers) //netscape 4 document.gLayer2.moveTo(newX,newY); else if(document.all){ //explorer 4 and 5 document.all.gLayer2.style.left = newX; document.all.gLayer2.style.top = newY; } else if(document.getElementById){ //netscape 6 and explorer 5 document.getElementById(\"gLayer2\").style.left = newX; document.getElementById(\"gLayer2\").style.top = newY; } }
function writeItToLayer(what){ if(document.layers){ //netscape 4 document.gLayer.document.write(what); document.gLayer.document.close(); } else if(document.all){ //explorer 4 and 5 document.all.gLayer.innerHTML = what; } else if(document.getElementById) //netscape 6 and explorer 5 document.getElementById(\"gLayer\").innerHTML = what; } </script> </head>
når du har flyttet rundt på det første lag, skal du lige trykke på \"Find x and y\" for at opdatere variablerne som placerer det andet lag... Du kan bare ændre funktionerne så alle funktioner opdaterer variablerne, og ikke kun \"Find x and y\" hvis du har lyst...
Det virker altsammen, men det er forudsat at jeg kender glayer´s position. Hvad nu hvis jeg ikke på forhånd kender glayer´s positition. Men først skal have den regnet ud! Kan kan det???
Nej den flytter ikke gLayer2 når du trykker på flyt. Den flytter gLayer1 og rykker så gLayer2 så det passer med den speciferede afstand, NÅR du trykker på \"place second layer\"
<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.0 Transitional//EN\">
<html> <head> <title>ghtml</title> <script language=\"javascript\"> function hidegLayer(){ if(document.layers) //netscape 4 document.gLayer.visibility = \"hidden\"; else if(document.all) //explorer 4 and 5 document.all.gLayer.style.visibility = \"hidden\"; else if(document.getElementById) //netscape 6 and explorer 5 document.getElementById(\"gLayer\").style.visibility = \"hidden\"; }
function showgLayer(){ if(document.layers) //netscape 4 document.gLayer.visibility = \"visible\"; else if(document.all) //explorer 4 and 5 document.all.gLayer.style.visibility = \"visible\"; else if(document.getElementById) //netscape 6 and explorer 5 document.getElementById(\"gLayer\").style.visibility = \"visible\"; }
function movegLayerBy(x,y){ if(document.layers) //netscape 4 document.gLayer.moveBy(x,y); else if(document.all){ //explorer 4 and 5 var left = document.all.gLayer.style.pixelLeft; var top = document.all.gLayer.style.pixelTop; document.all.gLayer.style.left = (left + x); document.all.gLayer.style.top = (top + y); } else if(document.getElementById){ //netscape 6 and explorer 5 var left = parseInt(document.getElementById(\"gLayer\").style.left); var top = parseInt(document.getElementById(\"gLayer\").style.top); document.getElementById(\"gLayer\").style.left = (left + x); document.getElementById(\"gLayer\").style.top = (top + y); } }
function movegLayerTo(x,y){ if(document.layers) //netscape 4 document.gLayer.moveTo(x,y); else if(document.all){ //explorer 4 and 5 document.all.gLayer.style.left = x; document.all.gLayer.style.top = y; } else if(document.getElementById){ //netscape 6 and explorer 5 document.getElementById(\"gLayer\").style.left = x; document.getElementById(\"gLayer\").style.top = y; } }
var x = 100; var y = 100;
function findXY(){ if(document.layers){ //netscape 4 x = document.gLayer.left; y = document.gLayer.top; } else if(document.all){ //explorer 4 and 5 x = document.all.gLayer.style.pixelLeft; y = document.all.gLayer.style.pixelTop; } else if(document.getElementById){ //netscape 6 and explorer 5 x = parseInt(document.getElementById(\"gLayer\").style.left); y = parseInt(document.getElementById(\"gLayer\").style.top); } document.form.x.value = x; document.form.y.value = y; }
function placegLayer2(){ var newX; var newY; var ekstraX = 200; var ekstraY = 300; if(document.layers){ //netscape 4 newX = (document.gLayer.left + ekstraX); newY = (document.gLayer.top + ekstraY); document.gLayer2.moveTo(newX,newY); } else if(document.all){ //explorer 4 and 5 newX = (document.all.gLayer.style.pixelLeft + ekstraX); newY = (document.all.gLayer.style.pixelTop + ekstraY); document.all.gLayer2.style.left = newX; document.all.gLayer2.style.top = newY; } else if(document.getElementById){ //netscape 6 and explorer 5 newX = (parseInt(document.getElementById(\"gLayer\").style.left) + ekstraX); newY = (parseInt(document.getElementById(\"gLayer\").style.top) + ekstraY); document.getElementById(\"gLayer2\").style.left = newX; document.getElementById(\"gLayer2\").style.top = newY; } }
function writeItToLayer(what){ if(document.layers){ //netscape 4 document.gLayer.document.write(what); document.gLayer.document.close(); } else if(document.all){ //explorer 4 and 5 document.all.gLayer.innerHTML = what; } else if(document.getElementById) //netscape 6 and explorer 5 document.getElementById(\"gLayer\").innerHTML = what; } </script> </head>
Ja, men du har en foruddiffeneret top og left på glayer. Det har jeg ikke Jeg ved udmiddelbart ikke hvor mit glayer befinder sig, da det er forskelligt hvor stor en opløsning man kører i.
Det er ligemeget... Funktionen som placerer gLayer2, læser glayers position, og bruger det til at regne ud fra... Du er da også nødt til at have defineret en top og en left med absolute, ellers virker det ikke i netscape... Netscape opfatter kun lag som lag hvis det er absolute...
Geeeet Jeg har også et andet problem. Jeg skal bruge functionen på flere layers og ikke kun på glayer2
det drejer sig nemlig om 10 layer, så hvis det er muligt kan functinonen så blive generel i stedet for kun at henvise til gLayer2. En stor taknemmelighed her fra. lip
Geeeet Har du en email, så kan jeg bedre vise dig mit problem. Det er nemlig således at jeg skal have layernes til at ligge på et bestemt sted på et baggrundsbillede. Det er lidt svært at forklare. Men hvis du ser min fil med baggrundsbillede og layers, vil du kunne se mit problem.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.