Поэтому я пытаюсь вызвать некоторые функции, когда полноэкранные разделы находятся в области просмотра. Допустим, у меня есть 7 секций, затем я хочу, чтобы что-то происходило, когда определенная секция находится внутри области просмотра (у меня есть функция, которая привязывает секции к области просмотра, поэтому в области просмотра никогда не может быть нескольких секций, но я пытаюсь найти какой участок виден в окне просмотра).
Вот скрипт: http://jsfiddle.net/h7Hb7/2/
function isInViewport() {
$("section").each(function () {
var $this = $(this),
wHeight = $(window).height(),
rect = $this.getBoundingClientRect(); // Error in console
// Borrowed from http://stackoverflow.com/a/7557433/5628
if (rect.top >= 0 && rect.bottom <= wHeight) {
console.log($this.attr("id") + "in viewport");
}
});
}
$(window).scroll(function () {
// Other functions are called inside the setTimeout function, can't remove
clearTimeout($.data(this, "scrollTimer"));
$.data(this, "scrollTimer", setTimeout(function () {
isInViewport();
}, 1200));
});
Я не знаю, с чего начать поиск, но я предполагаю, что это связано с каждой функцией. Каждая ли функция создает проблему? Это не может быть проблемой CSS, потому что проблема возникает при прокрутке, когда CSS уже загружен.