前端基础(问答22)

2016-08-17  本文已影响26人  郑哲明

keywords: jQuery懒加载、回到顶部。


元素可见:元素上边缘在窗口内或元素下边缘在窗口内,即为元素可见。

function isVisible($node) {
    var offTop = $node.offset().top         //$node当前位置的坐标,以文档为参照
    var $nodeH = $node.height()             //$node高度
    var curTop = $(window).scrollTop()      //window上边缘离页面顶部的距离
    var winH = $(window).height()           //window高度
    if ((curTop + winH) > offTop && curTop <= (offTop + $nodeH)) {
        return true
    } else  return false
}
function isVisible($node) {
    var offTop = $node.offset().top         //$node当前位置的坐标,以文档为参照
    var $nodeH = $node.height()             //$node高度
    var curTop = $(window).scrollTop()      //window上边缘离页面顶部的距离
    var winH = $(window).height()           //window高度
    if ((curTop + winH) > offTop && curTop <= (offTop + $nodeH)) {
        return true
    } else  return false
}

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

function isVisible($node) {
    var offTop = $node.offset().top         //$node当前位置的坐标,以文档为参照
    var $nodeH = $node.height()             //$node高度
    var curTop = $(window).scrollTop()      //window上边缘离页面顶部的距离
    var winH = $(window).height()           //window高度
    if ((curTop + winH) > offTop && curTop <= (offTop + $nodeH)) {
        return true
    } else  return false
}
var $isVisible    //记忆元素可见状态
$(window).on('scroll',function() {
    if ($isVisible) return
    if (isVisible($node)) {
        console.log(true)
        $isVisible = true
    }
})

懒加载:即图片延迟加载。对于有大量图片加载的网站,为优化网络请求,我们可以只加载用户直接面对的第一屏内容,当用户向下滚动至第二屏时,再加载第二屏内容。

原理:在待显示的img标签中加占位图片,真实地址放在自定义属性data-src中,当图片可见时,将src改写成图片的真实地址。

代码

当页面滚动到一定距离时,窗口右下角会出现回到顶部按钮,点击按钮页面会滚动到顶部。

效果+代码

效果+代码

效果+代码

上一篇 下一篇

猜你喜欢

热点阅读