您好,欢迎来到二三娱乐。
搜索
您的当前位置:首页16懒加载

16懒加载

来源:二三娱乐

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

function isVisible($node){
  var windowHeight = $(window).height();       //窗口高度
  var scrollTop = $(window).scrollTop();          // 窗口滑动距离
  var offsetTop = $node.offset().top;               // 相对文档高度
  if(offsetTop < windowHeight + scrollTop && offsetTop > scrollTop){
    return true;
  }
  return false;
 }

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

$(window).on('scroll',function(){
  if(isVisible($('p'))){
    console.log(true);
  }
  else {
    console.log(false);
  }
});

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

<!DOCTYPE html>
<html>
<head>
<script 
  <meta charset="utf-8">
  <title>JS Bin</title>
  <style>
    div {
      border: 1px solid red;
      width: 100px;
      height: 1000px;
    }
  </style>
</head>
<body>
  <div>12</div>
  <p load='no'>23</p>
</body>
</html>

function isVisible($node){
  var windowHeight = $(window).height();
  var scrollTop = $(window).scrollTop();
  var offsetTop = $node.offset().top;
  if(offsetTop < windowHeight + scrollTop && offsetTop > scrollTop){
    return true;
  }
  return false;
 }
$(window).on('scroll',function(){
  if(isVisible($('p')) && !isloaded($('p')) ){
    $('p').attr('load','yes');
    console.log(true);
  }
  else {
    console.log(false);
  }
});
function isloaded($node) {
  if($node.attr('load') === 'yes'){
    return true;
  }
  return false;
}

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

5: 实现视频中的图片懒加载效果

  var clock;
  renderImg();
  $(window).on('scroll',function(){
    if(clock){
      clearTimeout(clock);
    }
    clock = setTimeout(function() {
      renderImg();
      console.log(11);
    }, 300);
    
  });
  function renderImg(){
    $('.container img').each(function(){
      if(isVisible($(this)) && !isloaded($(this)) ){
        loadImg($(this));
      }
    })
  }
  function isVisible($img){
    var windowHeight = $(window).height();
    var scrollTop = $(window).scrollTop();
    var offsetTop = $img.offset().top;
    if(offsetTop < windowHeight + scrollTop && offsetTop > scrollTop){
      return true;
    }
    return false;
  }
  function isloaded($img) {
    return $img.attr('src') === $img.attr('data-src');
  }
  function loadImg($img){
    $img.attr('src',$img.attr('data-src'));
    console.log(1);
  }

Copyright © 2019- yule263.com 版权所有 湘ICP备2023023988号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务