懒加载

1. 写一个函数isVisible判断一个元素时否出现在窗口可视范围

function isVisible($node){
  var scrollTop = $(window).scrollTop();
  var wHeight = $(window).height();
  var offsetTop = $node.offset().top;
 
  if(offsetTop < scrollTop + wHeight && offsetTop > scrollTop ){
    console.log(true);
    return true;
  }
  return false;
}

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

$(function(){

  function isVisible($node){
  var scrollTop = $(window).scrollTop();
  var wHeight = $(window).height();
  var offsetTop = $node.offset().top;
  if(offsetTop < scrollTop + wHeight && offsetTop > scrollTop ){
    console.log(true);
  }
}
 $(window).on("scroll",function(){
     isVisible($node)
  })
})

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

$(function(){
  var hasCome= false;

  function firstEnter($node){
  if(hasCome){return}
  var scrollTop = $(window).scrollTop();
  var wHeight = $(window).height();
  var offsetTop = $node.offset().top;
  
  if(offsetTop < scrollTop + wHeight && offsetTop > scrollTop ){
    console.log(true);
    hasCome = true;
  }
}
 $(window).on("scroll",function(){
     isVisible($node)
  })
})

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

当一个网站上的图片资源很多的时候,如果把资源一次性请求过来,会造成页面加载过慢,并且服务器压力也会过大。这时,如果能先请求加载用户能看到的图片,不能看到的图片先不请求,等待图片进入可视区的时候再加载,这样分批请求加载可以解决上述困境。

其原理:,先把img元素或是其他元素的背景图片路径不设置,只有当图片出现在浏览器的可视区域内时,才设置图片正真的路径,让图片显示出来。判断图片是否进入可视区,监听页面的滚动scroll事件,获取

  • 滚动的距离scroll(垂直$(window).scrollTop(),水平距离$(window).srollLeft()),
  • 页面可视距离window(垂直$(window).height(), 水平$(window).width()),
  • 元素距离窗口边距的距离offset(垂直offset().top,水平offset().left),

进入可视区的条件是

offset < scroll + window && offset >= scroll

5. 懒加载实例

效果→效果

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisible...
    GarenWang阅读 476评论 0 2
  • 1.如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisible...
    Rising_suns阅读 314评论 0 0
  • 1、懒加载 1.什么是懒加载? 懒加载也就是延迟加载。当访问一个页面的时候,先把img元素或是其他元素的背景图片路...
    xiaolizhenzhen阅读 70,503评论 18 160
  • 1、懒加载1.什么是懒加载?懒加载也就是延迟加载。当访问一个页面的时候,先把img元素或是其他元素的背景图片路径替...
    Gaochengxin阅读 379评论 1 2
  • 如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisible实现...
    coolheadedY阅读 413评论 0 0