#javascript #jquery
#javascript #jquery
Вопрос:
Я хочу уменьшить непрозрачность меню, если его смещение к верхней части окна меньше 700 пикселей. Но я не понимаю, почему этот код не работает.
$(window).scroll(function() {
var offset = $(".navigation-top").offset();
var posY = offset.top - $(window).scrollTop();
if ($(posY) < 700) {
$('.navigation-top').animate({'opacity':'0.1'},500);
} else {
$('.navigation-top').animate({'opacity':'1'},500);
}
});
Комментарии:
1. Попробуйте
if (posY < 700) {
, нет причин преобразовывать его в объект jQuery.2.
posY
это число. Зачем преобразовывать его в объект jQuery? Просто напишитеif (posY < 700)
.3. Спасибо! ХОРОШО — я сделал так, как вы предложили, это работает с большой задержкой. Хммм.
Ответ №1:
Спасибо Карстену и Джереми,
Я закончил с этим. Но .stop() — это мантадори. В противном случае это работает только с крайней задержкой из-за беспорядка данных при прокрутке.
$(window).scroll(function() {
var offset = $(".navigation-top").offset();
var posY = offset.top - $(window).scrollTop();
if (posY < 700) {
$('.navigation-top').stop().animate({'opacity':'0.1'},500);
} else {
$('.navigation-top').stop().animate({'opacity':'1'},500);
}
});