Тема: $ или jQuery
Показать сообщение отдельно
  #5 (permalink)  
Старый 15.10.2015, 12:28
Аспирант
Отправить личное сообщение для ShutTap Посмотреть профиль Найти все сообщения от ShutTap
 
Регистрация: 12.11.2012
Сообщений: 70

ага, так только элементы что нужны берет. спасибо)

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

var screenH = jQuery(document).height();
var top = jQuery(window).scrollTop();
var pos;

sections.each(function(pos, element) {

objTop = jQuery(element).offset().top;
objHeight = jQuery(element).outerHeight(true);

if (objTop < top + screenH/2 && top + screenH/2 < objTop + objHeight){
//break;
}
	
});

jQuery('info').text((pos)+' '+objTop+' '+(top+screenH/2)+' '+(objTop+objHeight)+' '+top);


то есть перебираем нужные элементы при скролле, и если у кого-то попадает через середину - прерываем цикл, и индекс будет указывать на тот элемент, на котором остановились, который через середину проходит.
в блок info вывожу информацию для размеров. pos - undefined. Почему? Вроде объявил переменную за циклом.
И break не работает, хотя вроде читал, должно как в обычном цикле работать, а в итоге весь код не работает. Как прервать тогда перебор цикла?
Ответить с цитированием