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?
7 svar · 384 visningar · startad av tronez
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?
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 :)
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);
}
//-->
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?
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.
Tackar för det snabba svaret!
Nu har jag suttit o labbat ett bra tag, men inte blir jag klokare för det...
...help!
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);
}
}
//-->
Bugar & bockar, fungerar kanon! :)