前端基础(问答22)


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


  • 如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 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
}
  • 当窗口滚动时,判断一个元素是不是出现在窗口可视范围。每次出现都在控制台打印 true 。用代码实现

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)
})

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

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改写成图片的真实地址。

代码

  • 实现如下回到顶部效果

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

效果+代码

  • 实现如下图片懒加载效果

效果+代码

  • 实现如下无限滚动效果

效果+代码

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

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 179,267评论 25 708
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,179评论 1 92
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 15,490评论 4 61
  • 3537-严严-同桌易子 投稿主题:原创-成长 即使摔倒了也要爬起来,这就是成长。克服内心的恐惧与害怕,在正确的道...
    婧旭儿阅读 488评论 1 1
  • 今天看《你的生命有什么可能》第四章:能力:走上高手之路 搞录: 但是你到底适合哪一棵树呢?你总得做几次模考,才知道...
    风之壹把刀阅读 434评论 0 2

友情链接更多精彩内容