2017-01-10 19 views
1

Я хочу, чтобы div (меню) появлялся, когда пользователи прокручиваются, затем исчезают через короткое время, поэтому он не мешает чтению, а затем появляется снова, если пользователь прокручивает , Пока что следующий код выполняет эту работу, но мне нужен эффект fadein, когда появляется div.Как показать div на прокрутке с затуханием через некоторое время? Хотите использовать эффект fadein/fadeout без цикла

CSS

.onscrollbutton { 
    display: none; 
} 

JQuery

<script> 
    $(window).scroll(function(){ 
    $(".onscrollbutton").css("display","block").delay(5000).fadeOut("slow"); 
    }); 
</script> 

Стирание CSS и изменения кода JQuery на это приводит к петле FadeIn/Затухание, даже если пользователь не прокручивается:

<script> 
    $(window).scroll(function(){ 
    $(".onscrollbutton").fadeIn("slow").delay(5000).fadeOut("slow"); 
    }); 
</script> 

Как я могу достичь первого эффекта, но с плавным переходом?

+0

Извините, я хочу, чтобы div (меню) появлялся каждый раз, когда пользователь прокручивается. Если пользователь не прокручивается в течение 5 секунд, div исчезает, поэтому он не мешает чтению пользователя. Я отредактирую свой вопрос. Дело в том, что цикл второго кода происходит, даже если пользователь не прокручивает. –

+0

Вы завернули этот скрипт в готовность? $ (Функция() {}); Я спрашиваю об этом только потому, что возможно, что длина страницы настолько длинная, что создает полосу прокрутки и запускает скрипт. – Adrianopolis

ответ

0

fadeOut вызывает действие прокрутки, потому что оно в основном снимает высоту элемента .onscrollbutton. Попробуйте абсолютное позиционирование элемента, и оно должно работать. Работал для меня.

+0

Я получаю $ («onscrollbutton»). Css («display», «block»). Задержка (5000) .fadeOut («медленный») код для работы, но не .fadeIn («slow»). Delay (5000) .fadeOut («медленный») один, даже если я заверну его в готовую функцию или загрузку окна; или если используется фиксированное положение или абсолютное. Как только я прокручу, функция начнет цикл. –