2012-06-23 2 views
2

Мне нужно уметь fadein/fadeout div в зависимости от количества пикселей, прокручиваемых пользователем. Вот существующий jquery, который у меня есть. Я могу переключить его представление, но я хотел бы угаснуть это переключение. Каков правильный метод здесь?Fade in div после прокрутки

$("#subOverlay").hide(); 

$(window).bind('scroll', function(){ 
    $("#subOverlay").toggle($(this).scrollTop() > 520); 
}); 

Благодаря

ответ

8

Это может быть сделано следующим образом:

$(window).bind("scroll", function() { 
    if ($(this).scrollTop() > 520) { 
     $("#subOverlay").fadeIn(); 
    } else { 
     $("#subOverlay").stop().fadeOut(); 
    } 
}); 

DEMO:http://jsfiddle.net/ZHkY8/

+0

Идеальные спасибо! –

+0

Это решение почти идеально подходит для меня. я использую его, чтобы исчезнуть в липкое меню на одностраничном веб-сайте. моя единственная проблема в том, что мы можем видеть, как меню появляется и исчезает при загрузке страницы. есть ли способ скрыть его и не видеть, как меню появляется и исчезает? см. здесь: http://dev.manifold.ws/retail28/ –

+0

nevermind, я просто скрыл свое меню с показом css: none; он сделал трюк. –

2
$(window).bind("scroll", function() { 
    if ($(this).scrollTop() > 520) { 
     $("#subOverlay").stop().fadeOut(); 
    } else { 
     $("#subOverlay").fadeIn(); 
    } 
}); 

^^ Просто обратный массив :)

1

Я работал над чем-то похожим на ссылку Александра, но нуждался в том, чтобы он исчезал быстрее, чем 100% в верхней части экрана.

Вы можете настроить, когда объект начинает исчезать, и когда он заканчивается замиранием относительно размера браузера. Вы также можете настроить запуск выцветанию непрозрачность, если вы хотите, чтобы запустить его на сказать 0,2 вместо 0.

http://www.kevinnunn.com/fadetest/