@efimenko_b

Почему появляются сразу все элементы?

Имеется код
$('.hideme').each(function(i) {
  		if( $(window).scrollTop() + $(window).height() > $(this).position().top + $(this).outerHeight() ){
  			$(this).fadeIn(3000);
  		}
    })
	$(window).scroll( function(){
		$('.hideme').each( function(i){
			if( $(window).scrollTop() + $(window).height() > $(this).position().top + $(this).outerHeight() ){
        $(this).fadeIn(3000);
      }
		});
	});

Но при загрузке страницы появляются сразу все элементы, даже те что не попадают под условие и должны появляться только при прокрутке...почему так?
https://jsfiddle.net/cb1g7qq8/
Заранее спасибо.
  • Вопрос задан
  • 214 просмотров
Решения вопроса 2
delphinpro
@delphinpro Куратор тега CSS
frontend developer
.position() возвращает отступ от ближайшего не-статик родителя.
А вам, вероятно, нужно относительно документа - .offset()
Ответ написан
restyler
@restyler
position() и offset() будут возвращать нули всегда для элемента скрытого через display:none.
работающий вариант:
https://jsfiddle.net/cb1g7qq8/1/

(анимация visibility делается несложно, в гугле есть)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы