|
| Hvad sker der her ? Fra : rofe@mailme.dk |
Dato : 15-10-02 19:22 |
|
Hejsa
Jeg sidder og leger og forsøger at få en firkant (layer) til at gå i
firkant, ved først at flytte det
2 px til højre
2 px ned
2 px til venstre
2 px op
og så om igen.
Men der er et eller andet galt.
Jeg tager firkantens (layerets) left/top værdi og lægger to til, men jo
længere den kommer
jo hurtigere og i større ryk bevæger den sig. Med andre ord accelere den ret
hurtigt.
De linier som er udkommenteret i koden, og som egentlig var tænkt skulle
gøre ovenstående,
fjernes udkommenteringen der flytter firkanten (layeret) sig op i venstre
hjørne og bliver der.
Hvad gør jeg galt ?
Håber nogle kan hjælpe.
http://www.ideon.dk/d.html
m v h
Ronni
rofe@mailme.dk
| |
Lasse Reichstein Nie~ (15-10-2002)
| Kommentar Fra : Lasse Reichstein Nie~ |
Dato : 15-10-02 19:39 |
|
<rofe@mailme.dk> writes:
> Hvad gør jeg galt ?
Du bytter om på setInterval og setTimeout :)
Hver gang anim() kaldes laver den et setInterval, og hver setInterval
sørger for at kalde anim() hvert sekund. Altså bliver anim() kaldt
flere og flere gange i sekundet, antallet vokser endda eksponentielt,
så der sker virkeligt noget :).
Brug enten setTimeout i anim(), eller brug setInterval uden for anim
(f.eks. i onLoad).
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
'Faith without judgement merely degrades the spirit divine.'
| |
rofe@mailme.dk (15-10-2002)
| Kommentar Fra : rofe@mailme.dk |
Dato : 15-10-02 20:00 |
|
Takker!
Nu virker det næsten bortset fra at den først smider firkanten (layeret) op
i venstre hjørne, og så ellers køre firkanten rundt korrekt deroppe, men den
skal altid
liiige fjerne de oprindelige left, top værdier.
Hvorfor det ?
m v h
Ronni
rofe@mailme.dk
| |
Lasse Reichstein Nie~ (15-10-2002)
| Kommentar Fra : Lasse Reichstein Nie~ |
Dato : 15-10-02 20:31 |
|
<rofe@mailme.dk> writes:
> Takker!
>
> Nu virker det næsten bortset fra at den først smider firkanten (layeret) op
> i venstre hjørne, og så ellers køre firkanten rundt korrekt deroppe, men den
> skal altid
> liiige fjerne de oprindelige left, top værdier.
Ser ud til at pixelLeft og pixelTop starter med at være nul i din
browser (IE, gætter jeg på). Du kunne evt. lave en
initialiseringsfunktion der satte dem til det rigtige offset:
function init() {
var divs=document.getElementById('div');
divs.style.pixelLeft=divs.offsetLeft;
divs.style.pixelTop=divs.offsetTop;
setInterval(anim,1000);
}
Så starter de rigtigt. Det virker stadig ikke i Mozilla, af en eller
anden grund.
> Hvorfor det ?
Den virker fint for mig (Opera 6.05).
/L
--
Lasse Reichstein Nielsen - lrn@hotpop.com
'Faith without judgement merely degrades the spirit divine.'
| |
rofe@mailme.dk (15-10-2002)
| Kommentar Fra : rofe@mailme.dk |
Dato : 15-10-02 21:38 |
|
Takker Lasse
Nu funker det som det skal.
m v h
Ronni
| |
|
|