2016-04-13 117 views
0

我有一個JQuery腳本來加載通訊訂閱彈出窗口後,用戶使用jQuery .scroll/.scrollTop函數向下滾動一定量的像素。等待JQuery執行,直到整個頁面加載休息執行

目前這一切都內

jQuery(document).ready(function($) 

問題封裝是通常的緩存和影像發行和認購盒所有的地方彈出。我正在閱讀使用.load函數延遲jQuery,直到頁面完全加載。然而,當我更換

jQuery(document).ready 

jQuery(window).load(function($){ 
    //your code here 
}); 

功能完全斷裂。

我要指出,我使用WordPress和有排隊這樣的腳本:


function enfold_child_custom_scripts(){ 

    // Register and Enqueue a Script 
    // get_stylesheet_directory_uri will look up child theme location 
    wp_register_script('custom-js', get_stylesheet_directory_uri() . '/custom.js', array('jquery')); 
    wp_enqueue_script('custom-js'); 

} 

add_action('wp_enqueue_scripts', 'enfold_child_custom_scripts'); 

這裏是我JS/jQuery代碼,因爲它是現在。

jQuery(document).ready(function($) { 

    jQuery("#nl-pop").hide(); //hide nl block initially 
    var disableFade = "false"; 

    var startShowTop = jQuery("#newsletter-cta").offset().top - 3500; 
    var startHide = jQuery("#newsletter-cta").offset().top - jQuery(window).height(); //Hide when the viewport is reached 

    jQuery('#no-thanks').click(function(event) { 
     event.preventDefault(); 
     jQuery('#nl-pop').fadeOut('slow'); 
     disableFade = "true"; 
    }); 
jQuery(window).scroll(function() { 
     if(jQuery(window).scrollTop() < (startShowTop)) //when scrollposition is smaller than the first point 
     { 
      jQuery("#nl-pop").fadeOut(200); // Hide when in the upper part of the page 
     } 
     else //when reached the lower part of the page 
     { 
      if(jQuery(window).scrollTop() > startShowTop && $(window).scrollTop() < startHide && disableFade==="false") { //When reached the show position but not as far down as the hide position 
       jQuery("#nl-pop").fadeIn(200); //show 
      } 

      else if(jQuery(window).scrollTop() > (startHide)) { //scrolled down to the bottom newsletter box 
       jQuery("#nl-pop").fadeOut(200); //hide 
      } 
     } 

    }); 
}); 
+0

您已經將'$'傳遞給ready語句。在'ready'塊中使用''替代'jQuery'是安全的。 – 4castle

+0

**注意:您的函數'enfold_child_custom_scripts()',您不需要再使用** wp_register_script()**,因爲它現在被合併到** wp_enqueue_script()**中。你可以只用一個替換這兩行:''wp_enqueue_script('custom-js',get_stylesheet_directory_uri()。'/custom.js',array('jquery'));'[** Codex reference - wp_enqueue_script()**] (https://developer.wordpress.org/reference/functions/wp_enqueue_script/)。 – LoicTheAztec

+0

謝謝! –

回答

0

移動的startShowTopstartHide計算爲的.scroll()內部。這樣他們的價值不會受到卸載元素的影響。它們將取決於頁面的當前狀態(很可能在整個頁面加載後)。

相關問題