滚动后检测元素可见性
对于使用 AJAX 动态加载的元素,确定它们在视口中的可见性至关重要。这对于滚动后出现的元素尤其相关。这是解决此问题的有效方法:
使用自定义函数:
以下函数检查元素在当前视口中是否可见:
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)); }
使用实用程序函数:
更通用的选项是使用提供自定义功能的实用函数:
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中文网其他相关文章!