webForumDet fria alternativet

voigt.voigtan.cjb.net

7 svar · 384 visningar · startad av tronez

tronezMedlem sedan juli 2001728 inlägg
#1

jag såg ett script på sidan i rubriken, där man klickar på en länk i menyn och sidan scrollade sig i sidled... och nu undrar jag hur man gör lr får tag på det scriptet?

någon som har nån aning?

JojoxxMedlem sedan juni 20004 308 inlägg
#2

Funktionen heter scrollit() och ligger i filen http://217.10.104.141/voigtan/voigt/voigt.js, men fråga voigtann1 om du får låna den. Är du riktigt snäll får du säkert hjälp att lägga in funktionen med :)

voigtann1Medlem sedan juni 20019 519 inlägg
#3

Jag är käntis :D nej skoja bara... här är koden om du nu vill använda den:

<!-- 
var x = 0; dx = 0; dx2 = 1; 
 
function scrollit(dest) { 
  ww = 650          //  ww är sidbredden... 
  dest = dest*ww 
  dx = Math.ceil(Math.abs(dest - x) / 30); 
  if (dx>50) { dx = 50; } 
  dx2 = 1; 
  if (dest < x) { dx2 = -1;} 
   
  while(dest != x) { 
     if ((dx+1)*(dx+2)/2 <= Math.abs(x-dest)) { 
        dx = dx + 1; 
     } else { 
        if (dx*(dx+1)/2 > Math.abs(x-dest)) { 
          dx = dx - 1; 
        } 
     }  
 x = x + dx*dx2;  
 if (dx>50) { dx = 50; } 
  
//   parent.framenamn.scrollTo(x, 0);
     scrollTo(x, 0); 
  } 

//-->
solbulleMedlem sedan mars 20015 287 inlägg
#4

Hm, jag har sett och använt mig av den där koden tidigare, men skulle vilja ha den att "gå lite saktare", som det är nu schwisar(?) det bara till.

Hur kan man uppnå det?

JojoxxMedlem sedan juni 20004 308 inlägg
#5

Bryt ut while-loopen och lägg den i en egen funktion. Anropa funktionen från scrollit-funktionen där loopen låg förrut. Sedan gör du en koll sist i den nya funktionen;

if(dest != x){ setTimeout("ny_funktion()",50); }

ny_funktion är alltså namnet på den nya funktionen och 50 är timeouten i ms vilken du kan labba med.

solbulleMedlem sedan mars 20015 287 inlägg
#6

Tackar för det snabba svaret!

Nu har jag suttit o labbat ett bra tag, men inte blir jag klokare för det...

...help!

JojoxxMedlem sedan juni 20004 308 inlägg
#7

Ok.

<!-- 
var x = 0; dx = 0; dx2 = 1; 
function scrollit(dest_arg) { 
	dest=dest_arg;
	ww = 650          //  ww är sidbredden... 
	dest = dest*ww 
	dx = Math.ceil(Math.abs(dest - x) / 30); 
	if (dx>50) { dx = 50; } 
	dx2 = 1; 
	if (dest < x) { dx2 = -1;} 
	doScroll();  
}
function doScroll(){
	if ((dx+1)*(dx+2)/2 <= Math.abs(x-dest)) { 
		dx = dx + 1; 
	} else { 
		if (dx*(dx+1)/2 > Math.abs(x-dest)) { 
			dx = dx - 1;
		 } 
	}  
	x = x + dx*dx2;  
	if (dx>50) { dx = 50; } 
	scrollTo(x, 0); 
	if(dest != x) {
		setTimeout("doScroll();",50);
	}
}
//-->
solbulleMedlem sedan mars 20015 287 inlägg
#8

Bugar & bockar, fungerar kanon! :)

130 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)