2013-04-07 5 views
0

Мне интересно, может ли кто-то помочь, в основном у меня есть этот javascript, который исчезает в div, когда пользователь прокручивает страницу вниз, однако я хочу поставить условие на javascript, чтобы сказать, что оно только исчезает после того, как пользователь нажал на другой элемент div ,запустить javascript на 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

Единственная проблема, с которой я сталкиваюсь, заключается в том, что несколько кликов добавят несколько обработчиков. В чем проблема? –

+0

любые коды ошибок с консоли? – Aprillion

+0

Пожалуйста, не добавляйте события внутри события click. Это просто просит неприятностей. Вместо этого используйте условное состояние (см. Ниже). – Sukima

ответ

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 */ 
    } 
    }); 
})(); 
Смежные вопросы