備忘錄_20160105(定位) 修改 回首頁

程式 2022-09-19 17:15:05 1663578905 100
用 js / javascript 檢查元素是否在畫面內

用 js / javascript 檢查元素是否在畫面內

function getBoolIsInViewportById(strId)
{
  return getBoolIsInViewportByObj(document.getElementById(strId));
}

function getBoolIsInViewportByObj(oElement)
{
  var oRect=oElement.getBoundingClientRect();
  var oViewport={
        left:0,
        top:0,
        right:(window.innerWidth || document.documentElement.clientWidth),
        bottom:(window.innerHeight || document.documentElement.clientHeight)};
  
  // 面積為零,直接跳出
  if(oRect.left==oRect.right || oRect.top==oRect.bottom || oViewport.left==oViewport.right || oViewport.top==oViewport.bottom) { return false; }
  
  if(oRect.left>oViewport.right || oViewport.left>oRect.right) { return false; }
  if(oRect.bottom<oViewport.top || oViewport.bottom<oRect.top) { return false; }
 
  return true;       
}