懒加载

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

        var clock;
        function isVisible($img) {
            var windowHeight = $(window).height();
            var scrollHeight = $(window).scrollTop();
            var offsetHeight = $img.offset().top;
            console.log(offsetHeight);
            console.log(scrollHeight + windowHeight);
            if (offsetHeight < windowHeight + scrollHeight) {
                return true
            };
            return false;
        }
        $(window).on('scroll', function () {
            if (clock) {
                clearTimeout(clock)
            };
            clock = setTimeout(function () {
                console.log(isVisible($('#show')))
            }, 300);
        })

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

        var clock;
        function isVisible($img) {
            var windowHeight = $(window).height();
            var scrollHeight = $(window).scrollTop();
            var offsetHeight = $img.offset().top;
            console.log(offsetHeight);
            console.log(scrollHeight + windowHeight);
            if (offsetHeight < windowHeight + scrollHeight) {
                return true
            };
            return false;
        }
        $(window).on('scroll', function () {
            if (clock) {
                clearTimeout(clock)
            };
            clock = setTimeout(function () {
                console.log(isVisible($('#show')))
            }, 300);
        })

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

        var clock;
        function isVisible($img) {
            var windowHeight = $(window).height();
            var scrollHeight = $(window).scrollTop();
            var offsetHeight = $img.offset().top;
            if (offsetHeight < windowHeight + scrollHeight && offsetHeight > scrollHeight) {
                return true;
            };
            return false;
        }
       
        function isFirstLoaded($node) {
            if($node.hasClass('active')) {
                return true;
            }else {
                $node.addClass('active');
                return false;
            }
        }
        $(window).on('scroll', function () {
            if (clock) {
                clearTimeout(clock)
            };
            clock = setTimeout(function () {
                if(isVisible($('#show')) && !isFirstLoaded($('#show'))) {
                    console.log('first show')
                }
            }, 300);
        })

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

  • 例如实现图片的懒加载
    1. 把图片添加一个自定义data-src属性,把真实图片地址放在自定义属性里面
    2. 先检查图片是否出现在窗口视野中
    3. 检查图片是否已经加载
    4. 如果出现在视野中并且图片还未被加载,把图片自定义属性值赋值到src属性里面

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

懒加载事例

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 题目1:如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisib...
    湖衣阅读 1,612评论 0 0
  • 题目1:如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisib...
    yuhuan121阅读 2,895评论 0 0
  • 题目1:如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisib...
    普莱那阅读 4,153评论 2 0
  • 1、懒加载 1.什么是懒加载? 懒加载也就是延迟加载。当访问一个页面的时候,先把img元素或是其他元素的背景图片路...
    xiaolizhenzhen阅读 70,583评论 18 160
  • 1- 如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。用函数isVisible实现...
    osborne阅读 3,318评论 0 1

友情链接更多精彩内容