Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    20

    Scroll event a fine pagina.. (twitter like)

    Halo
    Dopo solo pochi giorni torno a infliggervi i miei dubbi

    Sto cercando di creare un forum che abbia una visualizzazione delle risposte "twitter-like" al posto delle solite pagine.

    Appena aperto un post vengono mostrate 20 risposte, scrollando la pagina in basso, arrivati alla fine della scrollbar, scatta l'"event" che fa caricare le successive 20 risposte. Fin qui tutto ok.

    Il problema sta nel fatto che la funzione chiamata dallo scroll event viene eseguita più di una volta, e in questo modo fa visualizzare 40 (60, 80..) risposte, invece di altre 20.

    Il codice che ho utilizzato è questo:
    (utilizzo prototype 1.7)

    codice:
    Event.observe(window, 'scroll', function scrolled() {
    
    var body = document.body,
    html = document.documentElement;
    
    var heightscrollfor = Math.max( body.scrollHeight, body.offsetHeight, 
                                html.clientHeight, html.scrollHeight, html.offsetHeight );  //altezza totale dello scroll
    					   
    					   var altdoc1 = window.outerHeight; //altezza del browser
    					   var altdoc2 = window.pageYOffset; //posizione dello scroll
    					   var altdoc3 = altdoc1 + altdoc2;
    
      if ( altdoc3  >= heightscrollfor ) {
    	 $('visaltripost').innerHTML='[img]images/index2/loading.gif[/img]';
    	 
           scrolledToBottom();
    	
    	return false;
      }
    });
    Il problema fondamentale sembra essere il fatto che quando nella pagina lo scroll si trova alla fine parte la funzione, si aggiungono gli elementi e quindi anche la posizione della scrollbar cambia (va più in alto), però nel frattempo la funzione è partita già 2 o 3 volte.

    Cosa posso fare per risolvere?


    Grazie in anticipo y.y

  2. #2
    Moderatore di Annunci siti web, Offro lavoro/collaborazione, Cerco lavoro L'avatar di cavicchiandrea
    Registrato dal
    Aug 2001
    Messaggi
    26,133
    Premesso che non mi sono studiato bene lo script e conosco poco/nulla prototype, pertanto la "butto" li (potrebbe essere una stupidata), e mettere un'ancora <a name="primi20" /> primi40, etc... cosi d'avere posizioni fisse da raffrontarsi potrebbe essere una soluzione? Boh al limite prova
    Cavicchi Andrea
    Problemi con javascript, jquery, ajax clicca qui

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2009
    Messaggi
    20
    Ho risolto confrontando l'altezza dello scroll totale a funzione avviata, a quella che risulta poco prima che la funzione parti.

    Funziona benissimo!

    L'unico problema è che è meno pratico di quel che pensassi: scorrere una lunga pagina di 100+ risposte non è bello, soprattutto se vuoi leggere l'ultima XD.

    Quindi terrò questo sistema per mostrare i topic, e userò le classiche e comode pagine per visualizzare le risposte nei topic.

    Grazie comunque !

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.