16. juni 2003 - 00:55Der er
21 kommentarer og 1 løsning
X koordinatet
Jeg skal finde et "div" elements x koordinat, så jeg har fundet flg. kode der virker i IE men ikke i NS(6):
function moveIt() { if (document.all) { x = (event.x - document.all['cont'].offsetLeft)-2; } else if (document.layers) { x = (event.x - document.layers['cont'].offsetLeft)-2; } else if (document.getElementById&&!document.all) { x = (event.pageX - document.getElementById('cont').offsetLeft)-2; } }
Ja det ved jeg, men den returnerer ikke x koordinatet i NS - jeg ved ikke om det er event.pageX der skal kaldes eller hvad men det virker i hvertfald ikke...
næh, pageX er god nok - den skulle gerne virke i NS. Skulle du ikke også gøre det ved de andre? Altså: else if (document.layers) { x = (event.pageX - document.layers['cont'].offsetLeft)-2;}
Jeg kan fortælle at jeg vil lave en slags 'progress' bar, hvorved et div-element er placeret inden i et andet, og dets størrelse afhænger så af hvor i det ydre div-element musen befinder sig - dvs. hvis musen er inde på midten, skal det indre div-elements højre side være ligeså
Du kan prøve med det her: function moveIt(evnt) { if (document.all) { x = (event.x - document.all['cont'].offsetLeft)-2; } else if (document.layers) { x = (evnt - document.layers['cont'].offsetLeft)-2; } else if (document.getElementById&&!document.all) { x = (evnt - document.getElementById('cont').offsetLeft)-2; alert(evnt); } }
hvor evnt kunne være en mouseover på din yderste div (eller hvordan du nu vil ha' den, altså: <div onmouseover="moveIt(event.layerX);">
Læste faktisk i manualen at event.x også virker (er et synonym/alias for layerX), men kunne ikke få det til at virke, så jeg vil anbefale layerX for nu.
nåja, roenving har ret - igen. Husk lige at lave en ... else { et eller andet} til sidst. Der er jo nogen browsere som slet ikke har javascript eller understøtter de valgte muligheder.
så skal det måske også tilføjes at man bør skrive: <script language="javascript"> <!-- function moveIt() { if (document.all) { x = (event.x - document.all['cont'].offsetLeft)-2; } else if (document.layers) { x = (event.x - document.layers['cont'].offsetLeft)-2; } else if (document.getElementById&&!document.all) { x = (event.pageX - document.getElementById('cont').offsetLeft)-2; } } // --> </script>
Så får folk uden javascript ikke smidt en masse tekst i hovedet når de går ind på siden. Men igen et spm om god kodeskik ;-)
>>skovenborg -- det er vel kun nødvendigt, hvis man bruger en browser, som ikke _forstår_ javascript (Netscape Navigator 1 og Internet Explorer 1 & 2) -- hvis de har slået det fra ignorerer browseren det da ...
Jaja, det var også det jeg mente. Jeg plejer heller ikke at gøre det, men får at ens kode er perfekt og virker i alle browsere, skal man egentlig også gøre dette. Men okay, det kan godt være lige meget.
Synes godt om
Ny brugerNybegynder
Din løsning...
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.