// Determine if an element is in the visible viewport
function isInViewport(element) {
var rect = element.getBoundingClientRect();
var html = document.documentElement;
//在IE中,默认坐标从(2,2)开始计算,导致最终距离比其他浏览器多出两个像素,我们需要做个兼容。
var top = document.documentElement.clientTop; // 非IE为0,IE为2
var left= document.documentElement.clientLeft;
return (
rect.top -top >= 0 &&
rect.left -left >= 0 &&
rect.bottom -top <= (window.innerHeight || html.clientHeight) &&
rect.right -left <= (window.innerWidth || html.clientWidth)
);
}