2014-12-24 2 views
1

Я почти полностью работал, но есть проблема с тем, как быстро изменяются непрозрачность, а также проблема при прокрутке назад.Прозрачность элемента прокрутки прокрутки

Jsfiddle http://jsfiddle.net/dp1b51fs/2/

  1. Я поставил его до 5000 >>$(".bgimage").animate({opacity: 0.4}, "5000"); Но это, кажется, с такой же скоростью, как, когда я имел его на 500. Что я делаю неправильно? (попробовали написать «5000 мс» и «500с», но это то же самое)
  2. Когда я прокручиваю вниз, элемент (фоновое изображение) исчезает до 0,4 непрозрачности. Но когда я прокручиваю резервную копию, непрозрачность просто переходит в 1 непрозрачность и не исчезает или не похожа.

ответ

2

Вам необходимо запустить .stop() до анимации, или же вы просто остановить прокрутку вверх анимации вы пытаетесь сделать:

$(document).scroll(function() { 
    if ($(this).scrollTop() > 500) { 
     $(".bgimage").stop().animate({opacity: 0.4}, 500); 
    } else { 
     $(".bgimage").stop().animate({opacity: 1}, 500); 
    } 

}); 

JSFiddle


Edit: Чтобы уточнить, что я сделал вам, ваш код:

Я удалил $(this).scrollTop() > 1, потому что если $(this).scrollTop() > 500 является истинным, то другой уже является истинным, так что в конечном счете, нет необходимости в нем.

Я обернул вашу прокрученную анимацию в заявлении else, потому что то, что вы делали изначально, стреляло независимо от того, что прокручивал пользователь (даже если их было больше 500), он просто выглядел немного грязным, и вы сразу стреляли по двум функциям ,

Я также удалил return, потому что я не видел в нем никакого использования.

+0

Большое спасибо. – user4312416

Смежные вопросы