懒加载

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

function isVisible($node){
    $(window).on('scroll',function(){
        var scrollTop = $(this).scrollTop()
        var windowHeight = $(this).height()
        var top = $node.offset().top
//元素出现在窗口可见范围内,console打印出true
        if(scrollTop+windowHeight>top){
            console.log('true')
        }
    })
}

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


$(window).on('scroll',function(){
  if(isVisible($node.not('.show'))){
    console.log('true')
    $(this).addClass('show')
  }
})

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

3、图片懒加载原理
图片的懒加载就是将图片较多的页面进行图片依据滚动到当前页面的条件加载。在加载之前将图片使用空白或占位图加载,在滚动条滚动至图片位置出现在浏览器视图窗口中时进行加载,从而避免了同时加载大量图片引起的服务端返回资源过多发生阻塞的情况
实现的核心要点:

  • 加载图片
    可以将真实的图片资源定义到自定义属性data-src中,当符合加载条件时,将data-src的值提取赋值给img的src
  • 判断在何种状态下加载
    临界位置:
scrollTop(滚动距离) + windowHeight(浏览器窗口大小) > offsetTop(元素距离scrollTop=0的距离)
scrollTop < offsetTop + height(元素占据高度)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisible...
    Rising_suns阅读 2,463评论 0 0
  • 如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisible实现...
    _Dot912阅读 5,614评论 10 8
  • 1.如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisible...
    GarenWang阅读 3,452评论 0 2
  • 1.什么是懒加载? 懒加载也就是延迟加载。当访问一个页面的时候,先把img元素或是其他元素的背景图片路径替换成一张...
    徐国军_plus阅读 2,642评论 0 8
  • 如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。 原理:获取这个元素的绝对位置,判...
    liushaung阅读 1,898评论 0 1