ホームページ >ウェブフロントエンド >jsチュートリアル >スクロール後に動的にロードされた要素が表示されるかどうかを確認するにはどうすればよいですか?
問題ステートメント:
AJAX を介して要素を動的にロードする場合、特にページで必要な場合、それらがページの表示領域内に表示されるかどうかを判断するのは困難です。
解決策:
スクロール後の要素の可視性を決定するには、isScrolledIntoView():
function isScrolledIntoView(elem) { var docViewTop = $(window).scrollTop(); var docViewBottom = docViewTop + $(window).height(); var elemTop = $(elem).offset().top; var elemBottom = elemTop + $(elem).height(); return ((elemBottom <= docViewBottom) && (elemTop >= docViewTop)); }
という JavaScript 関数を利用できます。 代替アプローチ:
代替ユーティリティ関数 Utils.isElementInView() は、 fullyInView オプションと PartiallyInView オプションの両方を提供します:
function Utils() {} Utils.prototype = { constructor: Utils, isElementInView: function(element, fullyInView) { var pageTop = $(window).scrollTop(); var pageBottom = pageTop + $(window).height(); var elementTop = $(element).offset().top; var elementBottom = elementTop + $(element).height(); if (fullyInView === true) { return ((pageTop < elementTop) && (pageBottom > elementBottom)); } else { return ((elementTop <= pageBottom) && (elementBottom >= pageTop)); } } }; var Utils = new Utils();
使用法:
var isElementInView = Utils.isElementInView($('#flyout-left-container'), false); if (isElementInView) { console.log('in view'); } else { console.log('out of view'); }
以上がスクロール後に動的にロードされた要素が表示されるかどうかを確認するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。