懒加载

2017-10-17  本文已影响0人  D一梦三四年

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

function isVisible($node) {
    var scrollTop = $(window).scrollTop();  //滑轮滚动的距离
    var windowHeight = $(window).height();  //浏览器窗口的高度
    var offsetTop = $node.offset().top;  //$node 到页面顶部的距离
    if(offsetTop < scrollTop + windowHeight && offsetTop + $node.height() > scrollTop) {
        return true;
    }
    return false;
}

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

function isVisible($node) {
    var scrollTop = $(window).scrollTop();  //滑轮滚动的距离
    var windowHeight = $(window).height();  //浏览器窗口的高度
    var offsetTop = $node.offset().top;  //$node 到页面顶部的距离
    if(offsetTop < scrollTop + windowHeight && offsetTop + $node.height() > scrollTop) {
        return true;
    }
    return false;
}

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

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

function isVisible($node) {
    var scrollTop = $(window).scrollTop();  //滑轮滚动的距离
    var windowHeight = $(window).height();  //浏览器窗口的高度
    var offsetTop = $node.offset().top;  //$node 到页面顶部的距离
    if(offsetTop < scrollTop + windowHeight && offsetTop + $node.height() > scrollTop) {
        return true;
    }
    return false;
}

var isEleVisible = false;
function check() {
    $(window).on('scroll', function () {
        if (isVisible($node) && !isEleVisible){
            console.log(true)
        }
        isEleVisible = true;
    })
}

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

5. 实现图片懒加载效果

上一篇 下一篇

猜你喜欢

热点阅读