如何检测一个元素是否在视窗中(判断元素是否在浏览器可见窗口)
/**
* 如何检测一个元素是否在视窗中(判断元素是否在浏览器可见窗口)
* @param {Object} elm
*/
export function checkVisible(elm) {
if (!elm) return
var rect = elm.getBoundingClientRect()
//获取当前浏览器的视口高度,不包括工具栏和滚动条
//document.documentElement.clientHeight兼容 Internet Explorer 8、7、6、5
var viewHeight = Math.max(
document.documentElement.clientHeight,
window.innerHeight
)
//bottom top是相对于视口的左上角位置
//bottom大于0或者top-视口高度小于0可见
return !(rect.bottom < 0 || rect.top - viewHeight >= 0)
}
//调用
const eleImg= document.querySelector(".dynamic-img")
if (checkVisible(eleImg)) {
//可在此编辑代码
}