15. april 2003 - 20:57
Der er
16 kommentarer og 1 løsning
flytte element diagonalt
Jeg ønsker en funktionalitet, der kan flytte et element til en koordinat i hvilken som helst retning og gerne på tid. somebody have that package? /Nielsen
Annonceindlæg tema
Cloud & AI
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.
16. april 2003 - 14:58
#1
<ole> Sparsomme info, men princippet er som følger: <script type="text/JavaScript"> var speed = 10; function pI(s) { return parseInt(s); } function anim(x,y) { var o = document.getElementById("ib"); o.style.left = (pI(o.style.left)<(x-speed))? pI(o.style.left) + speed + "px" : x + "px"; o.style.top = (pI(o.style.top)<(y-speed))? pI(o.style.top) + speed + "px" : y + "px"; if (pI(o.style.left)!=x || pI(o.style.top)!=y) setTimeout("anim("+x+","+y+")",40); } </script> <div id="ib" style="position:absolute;left:30px;top:50px;border:1px solid red">blabla</div> /mvh </bole>
16. april 2003 - 15:07
#2
super, Men den laver først et diagonalt ryk og derefter et vertikalt. jeg brugte funktionen således: <a href="#" onclick="anim(100,200)">asasa</a> Er der en chance for at rykket kan ske uden det sidste vertikale ryk /Nielsen
16. april 2003 - 15:09
#3
OK, got it udskiftede || med && i denne: if (pI(o.style.left)!=x || pI(o.style.top)!=y) setTimeout("anim("+x+","+y+")",40); Thanks alot, det er nøjagtig hvad jeg skulle bruge /Nielsen
16. april 2003 - 15:31
#4
Det går helt galt, hvis du udskifter || med &&. Så stopper animationen jo, når blot én af koordinaterne opfylder kravet :)
16. april 2003 - 15:41
#5
Ja, det har du ret i, har du et forslag /Nielsen
16. april 2003 - 15:46
#6
Ja, at du ikke retter det :)
16. april 2003 - 15:48
#7
LOL, Men så opstår problemet som jeg beskriver i denne kommentar: 16/04-2003 15:07:26
16. april 2003 - 20:06
#8
Oooops ..... den havde jeg overset :D Prøv det her: <script type="text/JavaScript"> var dX, dY, iX, iY, steps, numSteps = 100; function pI(s) { return parseInt(s); } function anim(x,y) { var o = document.getElementById("ib"); if (x && y) { iX = pI(o.style.left); iY = pI(o.style.top); dX = (x-iX)/numSteps; dY = (y-iY)/numSteps; steps = 0; } steps++; o.style.left = (dX*steps) + iX + "px"; o.style.top = (dY*steps) + iY + "px"; if (steps<numSteps) window.timer = setTimeout("anim()",20); } </script> <div id="ib" style="position:absolute;left:30px;top:50px;border:1px solid red">blabla</div> <button onclick="anim(500,300)">TEST</button>
16. april 2003 - 20:13
#9
... og selvfølgelig er der ingen grund til at blive ved med at kalde elementet: var o, dX, dY, iX, iY, steps, numSteps = 100; og: function anim(x,y) { if (x && y) { o = document.getElementById("ib"); iX = pI(o.style.left); iY = pI(o.style.top); dX = (x-iX)/numSteps; dY = (y-iY)/numSteps; steps = 0; } steps++; o.style.left = (dX*steps) + iX + "px"; o.style.top = (dY*steps) + iY + "px"; if (steps<numSteps) window.timer = setTimeout("anim()",20); }
16. april 2003 - 20:14
#10
hov ... hvad skete der med indrykningen .... ?!??!! :D
21. april 2003 - 18:29
#11
Exactly ;) thanks, answer please
22. april 2003 - 06:49
#12
lige et bonus spm.. Hvis jeg samtidig vil scalere elementet fra feks 200 til 20px i samme forløb som animationen sker, har du så endnu et bud. :)
22. april 2003 - 09:22
#13
fik den løst simpelt: o.style.width = parseInt(o.offsetWidth) - 4 + 'px'; o.style.height = parseInt(o.offsetHeight) - 4 + 'px'; :)
22. april 2003 - 14:24
#14
yups .... og da vi i forvejen har lavet et alias for parseInt(), kan du skrive: o.style.width = pI(o.offsetWidth) - 4 + 'px'; o.style.height = pI(o.offsetHeight) - 4 + 'px'; /mvh
22. april 2003 - 17:15
#15
u right, men skal du aldrig ha points :)
22. april 2003 - 17:52
#16
Jamen, jeg har allerede fået, tak ;o) Udfor min post (16/04-2003 14:58:21) står der da i hvert fald, at jeg er blevet begavet med et passende antal points :) /mvh
23. april 2003 - 06:35
#17
ok jeg sover videre så...
Vi tilbyder markedets bedste kurser inden for webudvikling