懒加载

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

function isVisible($node){
        var $windosHeight = $(window).height(),//窗口高度
            $windosScrollTop = $(window).scrollTop(),//窗口滚动高度
            $nodeHeight = $($node).height(), //节点cotentarea 高度
            $nodeOffsetTop = $($node).offset().top; //节点距根节点高度
        if( $windosHeight+$windosScrollTop > $nodeOffsetTop && $windosScrollTop < $nodeOffsetTop+$nodeHeight) {
            //在可视区域内
            return true
        }
        return false;
    }

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

  window.on('scroll'.function(){
    var flag = isVisible($node);
    if(flag){
      console.log(true); 
    }
  })      

    function isVisible($node){
        var $windosHeight = $(window).height(),//窗口高度
            $windosScrollTop = $(window).scrollTop(),//窗口滚动高度
            $nodeHeight = $($node).height(), //节点cotentarea 高度
            $nodeOffsetTop = $($node).offset().top; //节点距根节点高度
        if( $windosHeight+$windosScrollTop > $nodeOffsetTop && $windosScrollTop < $nodeOffsetTop+$nodeHeight) {
            //在可视区域内
            return true
        }
        return false;
    }

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

  window.on('scroll'.function(){
    var flag = isVisible($node);
    if(flag && !$node.hasClass('load')){
        $node.addClass('load');
        console.log(true);
    }
    return;
  })      

    function isVisible($node){
        var $windosHeight = $(window).height(),//窗口高度
            $windosScrollTop = $(window).scrollTop(),//窗口滚动高度
            $nodeHeight = $($node).height(), //节点cotentarea 高度
            $nodeOffsetTop = $($node).offset().top; //节点距根节点高度
        if( $windosHeight+$windosScrollTop > $nodeOffsetTop && $windosScrollTop < $nodeOffsetTop+$nodeHeight) {
            //在可视区域内
            return true
        }
        return false;
    }

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

将图片src 用data-src 保存起来,等到到图片出现在可是区域内,在进行src的加载

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

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

function isVisible($node){
        var $windosHeight = $(window).height(),//窗口高度
            $windosScrollTop = $(window).scrollTop(),//窗口滚动高度
            $nodeHeight = $($node).height(), //节点cotentarea 高度
            $nodeOffsetTop = $($node).offset().top; //节点距根节点高度
        if( $windosHeight+$windosScrollTop > $nodeOffsetTop && $windosScrollTop < $nodeOffsetTop+$nodeHeight) {
            //在可视区域内
            return true
        }
        return false;
    }

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

  window.on('scroll'.function(){
    var flag = isVisible($node);
    if(flag){
      console.log(true); 
    }
  })      

    function isVisible($node){
        var $windosHeight = $(window).height(),//窗口高度
            $windosScrollTop = $(window).scrollTop(),//窗口滚动高度
            $nodeHeight = $($node).height(), //节点cotentarea 高度
            $nodeOffsetTop = $($node).offset().top; //节点距根节点高度
        if( $windosHeight+$windosScrollTop > $nodeOffsetTop && $windosScrollTop < $nodeOffsetTop+$nodeHeight) {
            //在可视区域内
            return true
        }
        return false;
    }

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

  window.on('scroll'.function(){
    var flag = isVisible($node);
    if(flag && !$node.hasClass('load')){
        $node.addClass('load');
        console.log(true);
    }
    return;
  })      

    function isVisible($node){
        var $windosHeight = $(window).height(),//窗口高度
            $windosScrollTop = $(window).scrollTop(),//窗口滚动高度
            $nodeHeight = $($node).height(), //节点cotentarea 高度
            $nodeOffsetTop = $($node).offset().top; //节点距根节点高度
        if( $windosHeight+$windosScrollTop > $nodeOffsetTop && $windosScrollTop < $nodeOffsetTop+$nodeHeight) {
            //在可视区域内
            return true
        }
        return false;
    }

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

将图片src 用data-src 保存起来,等到到图片出现在可是区域内,在进行src的加载

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

1.gif

源码

实现视频中的新闻懒加载效果

2.gif

源码源码

实现视频中的新闻懒加载效果

2.gif

源码

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

推荐阅读更多精彩内容

  • 如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisible实现...
    _Dot912阅读 1,704评论 10 8
  • 1.如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisible...
    GarenWang阅读 476评论 0 2
  • 饥人谷_李栋 定义 图片懒加载 阶段实现 如何判断图片在可视范围 代码思路 封装 懒加载抽离 曝光去重 总结 一、...
    xingkong_s阅读 776评论 5 7
  • 1、懒加载 1.什么是懒加载? 懒加载也就是延迟加载。当访问一个页面的时候,先把img元素或是其他元素的背景图片路...
    xiaolizhenzhen阅读 70,506评论 18 160
  • 1、懒加载1.什么是懒加载?懒加载也就是延迟加载。当访问一个页面的时候,先把img元素或是其他元素的背景图片路径替...
    Gaochengxin阅读 380评论 1 2