js判断dom元素节点是否在可视区域内、获取可视区域内dom

当box内发生滚动时,判断其内部的某个元素是否在box的可视区内
可以在box的scroll事件中调用

// box可视区,el指定元素
function in_view(box,el) {
  if(el instanceof jQuery){
    el=el[0]
  }
  if(box instanceof jQuery){
    box=box[0]
  }
  //是否超过顶部
  var overtop = box.scrollTop > (el.offsetTop+el.clientHeight)
  //是否低于底部
  var overbottom = (box.scrollTop+box.clientHeight)<(el.offsetTop);
  //不超过顶部也不低于底部说明在可视区
  return !overtop && !overbottom;
}

//返回一组元素els中哪些在box可视区
function which_in_view(box,els) {
  var inviewEles=[]
  for (var i=0;i<els.length;i++) {
      var el = els[i];
      if(in_view(box,el)){
        inviewEles.push(el)
      }
  }
  return inviewEles
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值