2013-02-20 14 views
5

Vedo che alcuni blog utilizzati da jekyll usano disqusito per i commenti e dove la sezione dei commenti non verrà caricata fino a quando non scorrerai fino alla fine della pagina.Come caricare disimp quando si scorre verso la parte inferiore della pagina?

Come posso avvicinarmi a questo?

Ho provato qualcosa di simile:

<div id="disqus_thread"></div> 
<div id="disqus_loader" style="text-align: center"> 
<button onclick="load_disqus()">Load Disqus Comments</button> 
<script> 
function load_disqus() 
{ 
    var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; 
    dsq.src = "http://[YOUR-DISQUS-SHORTNAME].disqus.com/embed.js"; 
    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); 
    var ldr = document.getElementById('disqus_loader'); 
    ldr.parentNode.removeChild(ldr); 
} 
</script> 
</div> 

un clic sul pulsante per caricare il Disqus. Ma mi chiedo come posso caricarlo quando scorrono fino alla fine della pagina.

+0

Cosa hai provato? hai una sezione di commento funzionante per la quale puoi mostrare del codice? – Wez

+0

Tutto ciò che ho ottenuto è il codice universale da disqus. Ho provato qualcosa come un pulsante clic per caricare il disqus. –

risposta

6

Con l'aiuto di Javascript: How to detect if browser window is scrolled to bottom?

var disqus_loaded = false; 

function load_disqus() 
{ 
    disqus_loaded = true; 
    var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true; 
    dsq.src = "http://[YOUR-DISQUS-SHORTNAME].disqus.com/embed.js"; 
    (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq); 
    var ldr = document.getElementById('disqus_loader'); 
    ldr.parentNode.removeChild(ldr); 

} 

window.onscroll = function(e) { 
    if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight) { 
     //hit bottom of page 
     if (disqus_loaded==false){ load_disqus() }; 
    } 
}; 
+0

C'è un problema con questo metodo, non c'è un punto di arresto. Disqus caricherà ancora e ancora ogni volta che scorrerò fino in fondo alla pagina. –

+0

Aggiunta una rapida modifica per impedirlo. – bwest

+0

Ancora lo stesso problema, non impedendo il caricamento di load_disqus. –

2

Per un po 'più di flessibilità (richiede jQuery), si potrebbe prendere in considerazione la fissazione di un waypoint invece di richiedere all'utente di scorrere tutta la strada fino in fondo.

$('.end-of-jekyll-post').waypoint(function(direction) { 
    load_disqus(); 
}); 
+0

+1 Plugin impressionante! –

Problemi correlati