Avatar billede bramsing Nybegynder
08. juni 2005 - 15:54 Der er 7 kommentarer og
1 løsning

'shake' delay

Hejsa...

Jeg skal bruge et "Shake" script der kan ryste browseren lidt...
Selve "shake" scriptet har jeg i og for sig fundet...
Men jeg syntes det køre for stærkt...

<SCRIPT LANGUAGE="JavaScript1.2">
<!--
function shake(n)
{
shake_xy(n,true,true);
};
function shake_xy(n,h,v) {
        for (i = 40; i > 0; i--) {
            for (j = n; j > 0; j--) {
                if ( h ) top.moveBy(i,0);
                if ( v ) top.moveBy(0,i);
                if ( h ) top.moveBy(-i,0);
                if ( v ) top.moveBy(0,-i);
        }
    }
}
// -->
</SCRIPT>


Er der en løsning ala noget delay(33) man kan sætte ind mellem top.moveBy linierne for at styre hastigheden mellem moveBy trinene ??
Avatar billede roenving Novice
08. juni 2005 - 16:05 #1
Der findes ikke en delay-ting i javascript, så man skal meget længere omkring, nemlig lægge de forskellige stumper i selvstændige funktioner og så kalde dem dem via en setTimeout !-)

-- men er det ikke en irriterende ting for brugerne ?-)
Avatar billede bramsing Nybegynder
08. juni 2005 - 16:13 #2
Det er en lille intern spøg der skal bruges til et intranet :oP

Jeg lure lige lidt på at splitte det op som du skriver :)
Avatar billede bramsing Nybegynder
08. juni 2005 - 17:48 #3
Fatter ikke liiiiige ....
Er der én der kan sige mig fejlen ??

<SCRIPT LANGUAGE="JavaScript1.2">
<!--
function shake(n)
{
for (i = 40; i > 0; i--) {
for (j = n; j > 0; j--) {
setTimeout(time1(),33);
setTimeout(time2(),33);
setTimeout(time3(),33);
setTimeout(time4(),33);
        }
function time1(){
//document.write("p1");
top.moveBy(i,0); //V
        }
function time2(){
//document.write("2");
top.moveBy(0,i); //V
        }
function time3(){
//document.write("3");
top.moveBy(-i,0); //H
        }
function time4(){
//document.write("4");
top.moveBy(0,-i); //V
        }
    }
}
// -->
</SCRIPT>
Avatar billede olebole Juniormester
08. juni 2005 - 21:35 #4
<ole>

Dine funktioner kender jo ikke værdien af 'i'. Den skal sendes med i kaldene  :)

/mvh
</bole>
Avatar billede roenving Novice
09. juni 2005 - 00:49 #5
-- det var måske også nærmere sådan noget, jeg havde tænkt på !-)

<script type="text/javascript">
function shake(n){
  n = 10;
  shake_xy(n,true,true);
}
function shakein(i,h,v){
  if ( h ) top.moveBy(i,0);
  if ( v ) top.moveBy(0,i);
}
function shakeout(i,h,v){
  if ( h ) top.moveBy(-i,0);
  if ( v ) top.moveBy(0,-i);
}
function shake_xy(n,h,v) {
  for (i = 40; i > 0; i--) {
    for (j = n; j > 0; j--) {
      setTimeout('shakein(' + i + ',' + h + ',' + v + ')', n*33*(40-i) + (n-j)*33);
      setTimeout('shakeout(' + i + ',' + h + ',' + v + ')', n*33*(40-i) + (n-j)*33 + 33);
    }
  }
}
window.onload = shake;
</script>
Avatar billede bramsing Nybegynder
09. juni 2005 - 22:07 #6
Well Jeg kan ikke få hastigheden til at fungere... Så må lige studdere noget mere på det område :o/
Jeg vil gerne have lukket spørgsmålet igen så hvis I vil have point må I lige lægge et svar.. Ellers napper jeg dem selv om et par dage ;o)
Avatar billede roenving Novice
09. juni 2005 - 23:51 #7
Netop omkring 33 er, såvidt jeg husker, omkring det mindste, man kan bygge noget på i hastighed ...

'-)
Avatar billede roenving Novice
14. juni 2005 - 13:15 #8
-- og tak for point ;~}
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester