2011-05-16 157 views

回答

6

在看看源該網頁,開始上線461左右:

jQuery(function(){ 
    var ds_loaded = false, 
     top = jQuery("#comments").offset().top, 
     instructionsCloned = false; 

    function check(){ 
    if (!ds_loaded && jQuery(window).scrollTop() + jQuery(window).height() > top) { 
     jQuery.getScript("http://jquery.disqus.com/disqus.js?v=2.0&slug=child_selector_8220parent_child8221&pname=wordpress&pver=2.12"); 
     ds_loaded = true; 
    } else if (!instructionsCloned && document.getElementById('dsq-form-area')) { 

     var instructions = jQuery('ul.comment-instructions'); 

     instructions.clone().css({ 
     backgroundColor: instructions.css('backgroundColor'), 
     borderWidth: instructions.css('borderWidth'), 
     padding: '1em', 
     margin: '1em 0' 
     }).prependTo('#dsq-form-area'); 

     jQuery("#dsq-new-post > h3").text("Add a Contribution"); 

     instructionsCloned = true; 
    } 
    } 

    jQuery(window).scroll(check); 

    check(); 

}); 

他們首先獲得補償的意見div的頂部:

top = jQuery("#comments").offset().top 

然後他們定義一個名爲check()的函數,該函數檢查窗口的當前滾動高度,以及如果該值加上窗口高度大於偏移值,則會加載disqus腳本:

if (!ds_loaded && jQuery(window).scrollTop() + jQuery(window).height() > top) {...} 

然後他們這個check()功能綁定到scroll事件窗口:

jQuery(window).scroll(check); 

TL;博士:每當你滾動頁面,他們正在檢查的滾動的高度對抗的偏移高度評論div,如果它是可見的,那麼它加載disqus腳本(加載註釋)。

HTH :)

+0

清楚你花了寫這篇優秀的答案,有沒有你決定離開原來的問題是鬆散的理由嗎? – 2011-05-16 05:23:33

+0

@Sam Saffron:說實話,當我第一次讀它時,我沒有閱讀或理解它的問題。如果我現在看它,是的,這不是最好的措辭。通常情況下,我會盡力解決問題,但這並不是我想到的。我現在修復它:) – 2011-05-16 22:36:56

+0

感謝堆,我只是想弄清楚是否有辦法讓系統「鼓勵」你更多的做這樣的事情 – 2011-05-16 23:19:52