懒加载

如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。

 function isVisible($node){
   var offsetHeight = $node.offset().top
   var windowHeight=$(window).height()
   var scrollTop=$(window).scrollTop()
   if((offsetHeight>scrollTop) && (offsetHeight<windowHeight+scrollTop)){
      return true
  }
      return false
 }

当窗口滚动时,判断一个元素是不是出现在窗口可视范围。每次出现都在控制台打印 true 。用代码实现

$(window).on('scroll',function(){
     isVisible($('.div1'))
   }
})
function isVisible($node){
  var offsetHeight = $node.offset().top
  var windowHeight = $(window).height()
  var scrollTop = $(window).scrollTop()
  if((offsetHeight>scrollTop) && (offsetHeight<windowHeight+scrollTop)){
      console.log('true')
      return true
  }
      return false
 }
}

当窗口滚动时,判断一个元素是不是出现在窗口可视范围。在元素第一次出现时在控制台打印 true,以后再次出现不做任何处理。用代码实现

var isAppear = false  //设置初始变量为false;
  $(window).on('scroll',function() {
   function isVisible($node) {
      if (!isAppear) {   //当还未打印过true的时候执行函数
          var offsetHeight = $node.offset().top
          var windowHeight = $(window).height()
          var scrollTop = $(window).scrollTop()
      if( offsetHeight < scrollTop + windowHeight && offsetHeight > scrollTop  ){
        console.log ('true')
        }
        isAppear=true  //打印过true时,变量设置为true,后面就不会执行了
      }
   }
    isVisible($('.div1'))  
 })

图片懒加载的原理是什么?

将所有图片的img标签写入html中
将所有img的src设置为一张白图或loading图片,这样浏览器加载时只需要发送一个请求,因为对于相同内容的请求,浏览器会从缓存中获取数据
将img的真实地址放在data-src自定义属性当中,当img出现在视窗时,再将data-src属性值赋值给src属性

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisible实现...
    _Dot912阅读 5,655评论 10 8
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,718评论 1 92
  • 1.如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisible...
    GarenWang阅读 3,523评论 0 2
  • 懒加载 如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisib...
    marmot_ning阅读 1,895评论 0 0
  • 第一张为临摹,第二张自己的,宽宝宝在蓝天下草地上看气球球(๑ºั╰╯ºั๑)
    MochaLIN阅读 2,507评论 0 0

友情链接更多精彩内容