現在、要素がビューポートに入るかどうかを調べるために getBoundingClientRect() を使用しています。私が本当にする必要があるのは、要素の 50% (または任意のパーセンテージ) がビューポートに入ったかどうかを確認することです (スクロールを確認しています)。表示されている場合は、ページ上のテキストを更新して「はい」と表示し、表示されていない場合はテキストに「いいえ」と表示します。
ロジックに頭を悩ませているように見えず、頭がおかしくなり始めています。誰か助けてもらえますか?
以下の現在のコード!
isBannerInView: function (el, y) {
var _this = this,
elemTop,
elemBottom,
elemHeight,
isVisible;
for (var i = 0; i < el.length; i++) {
var pos = banners.indexOf(el[i]);
elemTop = el[i].getBoundingClientRect().top;
elemBottom = el[i].getBoundingClientRect().bottom;
elemHeight = el[i].getBoundingClientRect().height;
isVisible = (elemTop >= 0) && (elemBottom <= window.innerHeight);
_this.updateResults(el[i], pos, isVisible);
};
},
updateResults: function (el, pos, isVisible) {
var isInView = isVisible ? 'Yes' : 'No';
document.querySelectorAll('.results')[0].getElementsByTagName('span')[pos].innerHTML = isInView;
},