2013-04-07 79 views
0

我不知道是否有人可以幫助,基本上我有這個JavaScript的淡入淡出當用戶滾動頁面,但是,我想把條件放在JavaScript說只有在用戶點擊另一個div元素後淡出。在div上點擊運行javascript?

比如我需要的用戶,他們向下滾動頁面之前閱讀一段文字和這個div淡入,在這一段文字,是一個div叫

所以一旦用戶閱讀文本,他們將點擊'exit_profile_intro4'這將關閉文本框, 只有那麼我想要的JavaScript滾動和淡入div工作。可有人請告訴我怎麼可以這樣做:我已經試過

<script> 
$('div.exit_intro4').click(function(){ 
$(window).scroll(function(){ 
     var leftToBottom = $(document).height() - $(window).height() - $(window).scrollTop(); 
     var distanceFromTop = $(window).scrollTop(); 
     if(distanceFromTop > 300 && !$("profile_intro_case5").is(":visible") 
      && leftToBottom > 1000 && !$(".profile_intro_case5").is(":animated")) { 
       $(".profile_intro_case5").fadeIn(1000); 
     }else if($(".profile_intro_case5").is(":visible") && (distanceFromTop < 300 || leftToBottom < 1000) && !$(".profile_intro_case5").is(":animated")){ 
       $(".profile_intro_case5").fadeOut(); 
     } 
    }); 
}); 
    </script> 

原:

<script> 
$(window).scroll(function(){ 
     var leftToBottom = $(document).height() - $(window).height() - $(window).scrollTop(); 
     var distanceFromTop = $(window).scrollTop(); 
     if(distanceFromTop > 300 && !$("profile_intro_case5").is(":visible") 
      && leftToBottom > 1000 && !$(".profile_intro_case5").is(":animated")) { 
       $(".profile_intro_case5").fadeIn(1000); 
     }else if($(".profile_intro_case5").is(":visible") && (distanceFromTop < 300 || leftToBottom < 1000) && !$(".profile_intro_case5").is(":animated")){ 
       $(".profile_intro_case5").fadeOut(); 
     } 
    }); 
    </script> 
+0

我看到你唯一的問題是多次點擊會添加多個處理程序。你有什麼問題? – 2013-04-07 21:25:44

+0

控制檯中的任何錯誤代碼? – Aprillion 2013-04-07 21:26:22

+0

請不要在點擊事件中添加事件。這只是要求麻煩。改用條件狀態(見下文)。 – Sukima 2013-04-07 21:30:23

回答

0

我看不出爲什麼你的代碼是不正確的(不實際運行它),但是你指派一個像這樣的點擊

$('div.exit_intro4').click(// Function 

然而,你說你想在點擊「exit_profile_intro4」時觸發它。也許應該是這個。

$('div.exit_profile_intro4').click(// Function 
3

向滾動事件添加一個狀態。

(function() { 
    var user_can_scroll = false; 
    $("div.exit_intro4").click(function(e) { 
    /* do your thing */ 
    user_can_scroll = true; 
    }); 

    $(window).scroll(function(e) { 
    if (user_can_scroll) { 
     /* do your scroll thing */ 
    } 
    }); 
})();