美文网首页
懒加载相关

懒加载相关

作者: 虚玩玩TT | 来源:发表于2017-07-28 00:21 被阅读0次

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

 function isVisible($node){
  var scrollTop = $(window).scrollTop()
  var windowHeight = $(window).height()
  var offsetTop = $node.offset().Top

  if(offsetTop <= scrollTop + windowHeight && offsetTop >= scrollTop){return true}
  return false
 }

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

  $node.on('scroll',function(){
    if(isVisible($node)){console.log(true)}
  })

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

 $(window).on('scroll',function(){
   $('li').each(function(){
     if(checkShow($(this)) && !hasClass($(this))){
       console.log('true')
       addClass($(this))
       }
     })
  })
             
function checkShow($node){
  var a = $(window).scrollTop()
  var b = $(window).height()
  var c = $node.offset().top
  
  if(c >= a && c <= a+b){
    return true
  }
  return false
}

function addClass($node){
  $node.addClass('show')
}

function hasClass($node){
  if($node.hasClass('show')){return true}
  return false
}

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

对目标元素进行scroll事件绑定,写一个函数对其是否出现在可视区域进行判定,如果出现,再写一个函数对其是否加载进行判断,如果没有,给其src属性添加链接使其可以加载。

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

<!DOCTYPE html>
<html>
<head>
  <meta = 'utf-8'>
  <title>懒加载demo</title>
  <style>
    img {
      display: block;
      margin: 100px;
    }
  </style>
  <script src="https://libs.baidu.com/jquery/1.9.0/jquery.min.js"></script>
</head>
<body>
  <div>
    < img src="http://kejian.jirengu.com/data/fe/%E8%AF%BE%E4%BB%B6/32-%E6%87%92%E5%8A%A0%E8%BD%BD/code/blank.jpg" data-src="http://cdn.jirengu.com/book.jirengu.com/img/1.jpg">
    < img src="http://kejian.jirengu.com/data/fe/%E8%AF%BE%E4%BB%B6/32-%E6%87%92%E5%8A%A0%E8%BD%BD/code/blank.jpg" data-src="http://cdn.jirengu.com/book.jirengu.com/img/2.jpg">
    < img src="http://kejian.jirengu.com/data/fe/%E8%AF%BE%E4%BB%B6/32-%E6%87%92%E5%8A%A0%E8%BD%BD/code/blank.jpg" data-src="http://cdn.jirengu.com/book.jirengu.com/img/3.jpg">
    < img src="http://kejian.jirengu.com/data/fe/%E8%AF%BE%E4%BB%B6/32-%E6%87%92%E5%8A%A0%E8%BD%BD/code/blank.jpg" data-src="http://cdn.jirengu.com/book.jirengu.com/img/4.jpg">
    < img src="http://kejian.jirengu.com/data/fe/%E8%AF%BE%E4%BB%B6/32-%E6%87%92%E5%8A%A0%E8%BD%BD/code/blank.jpg" data-src="http://cdn.jirengu.com/book.jirengu.com/img/5.jpg">
  </div>

  <script>
    $(window).on('scroll',function(){
      $('img').each(function(){
         if(checkShow($(this)) && !isloaded($(this))){
            loadImg($(this))
          }

        function checkShow($node){
          var scrollTop = $(window).scrollTop()
          var windowHeight = $(window).height()
          var offsetTop = $node.offset().top

          if(offsetTop <= scrollTop + windowHeight && offsetTop >= scrollTop){
            return true}
          return false
          }

        function isloaded($node){
          return $node.attr('src') === $node.attr('data-src')
        }
        function loadImg($node){
          $node.attr("src",$node.attr('data-src'))
        }
      })
    })
  </script>
</body>
</html>

相关文章

  • 懒加载相关

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

  • 懒加载的相关介绍

    懒加载的相关介绍 1.懒加载的基本 懒加载-----也成为延迟加载,即在需要的时候才加载(效率低,占用内存小)。所...

  • 懒加载相关笔记

    swift: 模板: var label = UILabel() //do something here labe...

  • 懒加载相关问题

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

  • 关于Fragment与ViewPager,PageAdapter

    Fragment相关: 1.懒加载 1.懒加载需要解决的问题:1.Fragment一般配合ViewPager使用,...

  • [iOS] 卡顿优化

    目录: UI相关问题 [NSThread callStackSymbols]引发的卡顿 cell的view懒加载 ...

  • Spring Data JPA关于懒加载的那些事

    背景 环境 相关环境配置: SpringBoot+PostGreSQL Spring Data JPA 懒加载现象...

  • Spring Data JPA关于懒加载的那些事

    背景 环境 相关环境配置: SpringBoot+PostGreSQL Spring Data JPA 懒加载现象...

  • iOS开发,懒加载

    什么是懒加载? 懒加载--比较懒的加载方式,需要的时候才加载,也称为延时加载。 所谓懒加载既是重写get方法,一定...

  • iOS开发UI篇-懒加载、重写setter方法赋值

    一、懒加载 1.懒加载定义 懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小)。所谓懒加载,写的...

网友评论

      本文标题:懒加载相关

      本文链接:https://www.haomeiwen.com/subject/snwtlxtx.html