У меня есть функция для оценки того, находится ли элемент (iFrame) в области просмотра, если элемент находится в поле зрения, он возвращает true.
function isElementInViewport() {
var el = document.getElementById('postbid_if')
var rect = el.getBoundingClientRect();
var elemTop = rect.top;
var elemBottom = rect.bottom;
console.log("eleTom " + elemTop)
console.log("elemBottom " + elemBottom)
console.log("window.innerHeight " + (window.innerHeight + (window.top.innerHeight * 0.5)))
var isVisible = (elemTop >= 0) && (elemBottom <= (window.innerHeight + window.innerHeight * 0.5));
return isVisible;
}
Эта функция работает правильно, когда обслуживается непосредственно на странице, но в реальной среде, когда эта функция запускается, она находится внутри iFrame, и похоже, что getBoundingClientRect()
ссылается на область просмотра iFrame, а не на главное окно?
Есть ли способ использовать окно просмотра главного окна из iFrame с getBoundingClientRect()