懒加载

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

function isVisible($node){
      var winH=$(window).height()
      var scrH=$(window).scrollTop()
      var offH=$node.offset().top
      var nodeH=$node.height()
 
      if(offH<winH+scrH&&scrH<nodeH+offH){
        return true
      }else{
        return false
      }
 
    }

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

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
  <style>
    p{
      margin-top: 1300px;
      margin-bottom: 1300px;
    }  
    
  </style>
</head>
<body>
  <div><p>hello</p></div>
  
  <script src="jquery-3.2.1.min.js"></script>
  <script>
    
      var winH=$(window).height();
      var scrH=$(window).scrollTop();
      var offH=$('p').offset().top;
      var nodeH=$('p').outerHeight();
    
    $(window).on('scroll',function(){
          // console.log($(window).scrollTop())
          // console.log(scrH)
          
        if(offH<winH+$(window).scrollTop()&&$(window).scrollTop()<nodeH+offH){
          console.log(true)
        }else{
          console.log(false)
        }
      })
  </script>
</body>
</html>

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

<head>
   <style>
    p{
      margin-top: 1000px;
      margin-bottom: 1000px;
      width: 100px;
      height: 20px;
      background: green;
    }  
  </style>
</head>
<body>
  <p>
    hello
  </p>
  <script src="jquery-3.2.1.min.js"></script>
  <script>
    var num=0
    $(window).on('scroll',function(){
      if(checkshow($('p'))){
        num++;
        if(num===1){
          console.log(true)
        }
      }else{
          console.log(false)
      }
    })
    function checkshow(){
      var winH=$(window).height();
      var scrH=$(window).scrollTop();
      var offH=$('p').offset().top;
      var nodeH=$('p').outerHeight();
       if(offH<winH+$(window).scrollTop()&&$(window).scrollTop()                
       <nodeH+offH){
          return true
        }else{
          return false
        }
    }
 </script>

</body>

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

  1. 对于所有img标签,把真实地址放入自定义属性中
  2. 当滚动页面时,检查所有img标签,看这个标签是否出现到我们视野中,当出现在视野中,再去判断他是否已经加载过,若没加载,则加载他

懒加载的目的:当一个页面有大量图片和内容时,网站为了节省流量,可以去做一个判断:当用户想看的时候再加载内容给他。同时也加快了用户打开网站的速度,提升用户体验

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

推荐阅读更多精彩内容

  • 如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisible实现...
    _Dot912阅读 5,614评论 10 8
  • 1.如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisible...
    GarenWang阅读 3,446评论 0 2
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,686评论 1 92
  • 懒加载 如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisib...
    marmot_ning阅读 1,833评论 0 0
  • 这个世界的法则是:优先即存在 如果知道了自己整个人生的你,现在以第三人称出现在世界上。也就是说,这个世界原本存在的...
    Chao米饭阅读 1,534评论 0 0