Gå til innhold

[Løst] Mikroskopisk endring av et javascript (jQuery)


Anbefalte innlegg

Hei,

 

Jeg kan virkelig ikke javascript, men tror jeg er på sporet av noe som kan løse et problem jeg har.

Målet er å få en en del av en nettside til å autorulle vertikalt.

<div id="rulle">
   Masse informasjon som strekker seg over det som finnes av skjermhøyde.
</div>

Jeg fant denne Jsfiddle'en(?): http://jsfiddle.net/NaP8D/149/

//run instantly and then goes after (setTimeout interval)

$("html, body").animate({ scrollTop: $(document).height() }, 4000);
setTimeout(function() {
   $('html, body').animate({scrollTop:0}, 4000); 
},4000);
setInterval(function(){
     // 4000 - it will take 4 secound in total from the top of the page to the bottom
$("html, body").animate({ scrollTop: $(document).height() }, 4000);
setTimeout(function() {
   $('html, body').animate({scrollTop:0}, 4000); 
},4000);
    
},8000); 

som i mer eller mindre grad gjør akkurat det jeg ønsker.

 

Så til årsaken til innlegget: Så vidt jeg kan forstå gjør dette scriptet at hele siden (body) ruller. Hvordan får jeg kun id="rulle" til å rulle?

Jeg forsøkte naturligvis det enhver med for lite forståelse ville gjøre; bytte ut body med rulle, men jeg skjønte jo allerede før jeg prøvde det at det ikke ville fungere.

 

Er det noen som kunne være så greie å vise meg hvordan det skal gjøres?

 

På forhånd takk for svar!

 

Lenke til kommentar
Videoannonse
Annonse

http://jsfiddle.net/NaP8D/425/

 

Altså bruke

$("#rulle").animate({ scrollTop: $("#rulle")[0].scrollHeight }, 4000);

Greia er at når du skal velge noe med id, så bruker du # foran. Ingen tegn foran betyr at du velger html elementer. F. eks. "body", "div" osv.

For å kunne scrolle en liten del av siden må boksen innholdet er i ha scrollbars, det løste jeg ved å sette en høyde og overflow:auto i css.

 

Siste er at jeg byttet ut $(document).height() med $("#rulle")[0].scrollHeight i javscripten. Fordi selve høyden på div'en ikke er lengden man ønsker å scrolle, man ønsker jo å scrolle så langt som *innholdet inni* diven.

Lenke til kommentar

http://jsfiddle.net/NaP8D/425/

 

Altså bruke

$("#rulle").animate({ scrollTop: $("#rulle")[0].scrollHeight }, 4000);

Greia er at når du skal velge noe med id, så bruker du # foran. Ingen tegn foran betyr at du velger html elementer. F. eks. "body", "div" osv.

For å kunne scrolle en liten del av siden må boksen innholdet er i ha scrollbars, det løste jeg ved å sette en høyde og overflow:auto i css.

 

Siste er at jeg byttet ut $(document).height() med $("#rulle")[0].scrollHeight i javscripten. Fordi selve høyden på div'en ikke er lengden man ønsker å scrolle, man ønsker jo å scrolle så langt som *innholdet inni* diven.

Tusen hjertelig takk for svar Matsemann!

 

Det fungerte perfekt! :)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...