04. marts 2008 - 13:04Der er
22 kommentarer og 1 løsning
moveable div
Jeg har lavet et lille script der flytter en "div" på sitet vha. piletasterne:
kodestump: function mover(){ var MD = event.keyCode;//MoveDirection if(MD == 38){//op man.style.posTop = man.style.posTop - 4;} } }
Hvordan laver jeg det sådan at hvis "div" støder på en anden "div" så kan den ikke 'køre' igennem denne, men kun udenom ?? (vha. op,ned,venstre,højre piletast)
//find alle divs var divs = document.getElementsByName("Div"); var Xcoords = new Array(); var YCoords = new Array();
//smid alle divs kordinater i arrays for(var i = 0; i < divs.lenght; i++) { if(Ikke det flytbare div) { Xcoords.push(divs[i].Xcoords) Ycoords.push(divs[i].Xcoords) } }
Herefter kan du i din "move" funktion, chekke om der rammes nogen.
Personligt ville jeg bruge noget færdigt kode, men det afhænger lidt af målet - hvis det bare er for sjov, til eget website, jamen så lav det selv.. men når der er timer der tæller er det oftes bedst at tage noget færdigt, gennemtestet kode.. (mange vil nok ikke give mig ret :) )
Nej, det er der ikke. Jeg gentager: "Der er ikke nogen style-properties, der hedder posLeft og posTop". De to properties er ganske enkelt ikke defineret i nogen somhelst officiel standard :)
Desuden burde dine CSS-tildelinger ikke virke i nogen browser. Du burde skrive:
Jeg er da ked af at de ikke defineret i nogen somhelst officiel standard. Men for mig betyder dette egentligt ikke ret meget, da de defineret eller ej virker.
Ja du har ret. det er IE der retter fejlen med de manglende px for mig.
- og det er noget sludder, at det virker. Det virker kun i IE ... netop fordi, det ikke er standardiseret.
Måske, du kunne have gavn af at gå lidt mere op i, hvad der er standardiseret kode og hvad der ikke er. Når skidtet ikke virker, kan man sjældent klare sig med smarte kommentarer ;o)
Jeg ville personligt selv (hvis jeg skulle lave alt fra bunden, som jeg aldrig ville kaste mig ud i) bygge det lidt mere object orienteret op.. Ellers bliver det alt for hurtigt for uskalerbart og ugennemskueligt, og browserkompabilitet kan lige pludselig blive et debug helvede.
altså wrap dine moveable div's ind i nogle klasser der har en leftTop egenskab og en rightbottom bestående af 2 koordinater for hver. Giv dem nogle metoder som at flytte, checke om de rammer andre osv.
Hjælp til selvhjælp :), det vil dog hjælpe andre brugere hvis du lige postede noget af den fungerende kode -> så vil de også kunne finde lidt hjælp, desuden er jeg lidt nysgerrig om resultatet :)
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.