[js] 写一个JS方法,判断元素是否在可视区域

haizhilin2013
2021-01-20 04:39:10 星期三
js
                    
                        
写一个JS方法,判断元素是否在可视区域
Comments per page
< Page 1 / 1 >
xujs0813 2021-01-20 12:06:30
// 判断元素是否在视口中
function isEleVisible(ele){
    var {top, right, bottom, left} = ele.getBoundingClientRect()
    var w = window.innerWidth
    var h = window.innerHeight
    if(bottom < 0 || top > h){
        // y 轴方向
        return false
    }
    if(right < 0 || left > w){
        // x 轴方向
        return false
    }
    return true
}
fanerge 2021-01-22 07:34:22

使用 IntersectionObserver 实现,性能更好
IntersectionObserver

// 默认以 viewport 为观察容器
var intersectionObserver = new IntersectionObserver(function(entries) {
  // todo 如懒加载等

});
// start observing
intersectionObserver.observe(document.querySelector('#loadVideo'));
// 合适的时机停止监听
intersectionObserver.unobserve(document.querySelector('#loadVideo'))
排行榜
今日答题答题排行
    未答的题
    更多>
      【关注作者公众号】 以面试驱动学习--前端剑解
      【公众号推荐】 不折腾的前端和咸鱼有什么区别

      学习不打烊,充电加油只为遇到更好的自己,365天无节假日,每天早上5点纯手工发布前端知识点(死磕自己,愉悦大家)。希望大家在这浮夸的前端圈里,保持冷静,坚持每天花20分钟来学习与思考。在这千变万化,类库层出不穷的前端,建议大家不要等到找工作时,才狂刷题,提倡每日学习!欢迎大家关注3+1开源项目!希望大家每人去学习与思考!(不要为了谁而来,要为自己而努力!

      【关注官方公众号】 每天4:30-5:00推送
      【公众号推荐】 一起折腾前端算法
      【微信学习群】 备注3+1