[JS] Scroll +page positie

Pagina: 1
Acties:

  • web-hawk
  • Registratie: Januari 2000
  • Laatst online: 15-01-2022

web-hawk

web-con.nl

Topicstarter
Ik heb nu een javascriptje dat scrollt naar rechts en naar links van de pagina:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// number of pixels to scroll right and left...
n = 650     

function scrollright(){ 
    for (I=1; I<=n; I++){      
       window.scroll(I,1);
      }
}    

function scrollleft(){
    for (I=n; I>=1; I--){
        window.scroll(I,n);
    }
}                                
//-->
</SCRIPT>

en de linkies:
code:
1
2
<a href="javascript:scrollright()">scroll rechts </a>
<a href="javascript:scrollleft()">scroll links </a>

Maar nu is het probleem, dat als ik nog een stapje verder naar rechts wil scrollen dat hij de I-waarde dus gefixed heeft op 1.

Is er niet een manier om daar een relatieve waarde aan de hangen zodat ik iedere keer OF 650 pixels verder naar rechts kan scrollen OF 650 pixels naar links?

Innovation beyond Imagination


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Ja, de horizontale scroll offset meenemen in het verhaal.
document.body.scrollLeft in IE en window.pageXOffset in NS dacht ik.

Intentionally left blank


  • web-hawk
  • Registratie: Januari 2000
  • Laatst online: 15-01-2022

web-hawk

web-con.nl

Topicstarter
hmm...
zou het niet gewoon kunnen dat na het uitvoeren van de function, de variable n met 2 vermenigvuldigd wordt?

Innovation beyond Imagination


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Op woensdag 23 januari 2002 12:31 schreef web-hawk het volgende:
hmm...
zou het niet gewoon kunnen dat na het uitvoeren van de function, de variable n met 2 vermenigvuldigd wordt?
Nee, want als je dan naar links scrolled scroll je 2x650 pixels naar links.
Je kan beter misschien een 2e global introduceren die je scroll offset bijhoud.

Intentionally left blank


  • web-hawk
  • Registratie: Januari 2000
  • Laatst online: 15-01-2022

web-hawk

web-con.nl

Topicstarter
ja...ok :)

Maar hoe doe ik dat?

de positie vraag ik op met:
window.pageXOffset
document.body.scrollLeft

Maar hoe koppel ik die nu aan de variable n?

(heb hier even gekeken: http://wsabstract.com/javatutors/static2.shtml , maar daar wordt verder niet zoveel uitgelegd)

misschien iets van
code:
1
var n = window.scroll : pageXOffset;

ofzo?

Innovation beyond Imagination


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

Denk dat dit het makkelijkst is:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<script language="javascript">
// number of pixels to scroll right and left...
var n = 10;
// current page scroll offset
var c = 0;
function scrollright() { 
    for (var i=0; i<n; i++) {
       c++;    
       window.scroll(c,0);
      }
}    

function scrollleft() {
   if (c > 0) {
    for (var i=0; i<n; i++) {
        c--;
        window.scroll(c,0);
    }
   }
}                        
//-->
</script>

suc6

Intentionally left blank


  • web-hawk
  • Registratie: Januari 2000
  • Laatst online: 15-01-2022

web-hawk

web-con.nl

Topicstarter
Holy shit!
it works, tnx m8!

Maar wat ik nu niet begrijp...
c heeft standaard een waarde 0.
c is de page offset.
Wordt na het uitvoeren van de function c weer op 0 gezet ofzo?

Innovation beyond Imagination


  • crisp
  • Registratie: Februari 2000
  • Nu online

crisp

Devver

Pixelated

c is een zogenaamde global. Dat wil zeggen dat de waarde van c altijd vastgehouden wordt en in elke functie gebruikt kan worden.
In dit geval initialiseer ik c op 0 (want als je pagina geladen is is er nog niet naar rechts gescrolled. De x van je pagina is dus zeg maar 0).
Als je nu 1x naar rechts hebt gescrolled is c 650 geworden.
de 2e keer dat je naar rechts scrolled wordt c 1300.
Naar links dus net andersom. snappie?

Intentionally left blank


  • web-hawk
  • Registratie: Januari 2000
  • Laatst online: 15-01-2022

web-hawk

web-con.nl

Topicstarter
jeah...nu je het zo uitlegd klinkt het allemaal zo verrekte logisch :(

Nogmaals: Mijn dank is reuzegroot

Innovation beyond Imagination

Pagina: 1