懒加载

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

  • 原理:获取这个元素的绝对位置,判断它的纵坐标是否在可视窗口之间;可视窗口:垂直滚动距离 ~ 垂直滚动距离+窗口高度

    代码实现(jQuery):
    function isVisible($node) {
      var scrollTop = $(window).scrollTop()
      var windowVisible = scrolltop + $(window).height()
      var offsetTop = $node.offset().top
      if (offsetTop < windowVisible && offsetTop > scrolltop) {
        return true
      }
      return false
    }
    

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

代码实现(调用上面的isVisble方法):
$(node).('scroll', function () {
  if (isVisible($(this))) {
    console.log(true)
  }
})

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

代码实现:
function isVisible($node) {
  var scrollTop = $(window).scrollTop()
  var windowVisible = scrolltop + $(window).height()
  var offsetTop = $node.offset().top
  if (offsetTop < windowVisible && offsetTop > scrolltop && !$node.data.visible) {
    $node.data('visible', 1)
    return true
  }
  return false
}
$(node).('scroll', function () {
  if (isVisible($(this))) {
    console.log(true)
  }
})

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

  • 一:先将img标签src属性设置为空,在图片出现在可视窗口时再给它添加src属性。
  • 二:先加载一部分图片,在浏览器滚动到接近底部时再动态生成img标签。

图片懒加载效果

新闻懒加载

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

推荐阅读更多精彩内容

  • 1.如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisible...
    Rising_suns阅读 2,435评论 0 0
  • 1.如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisible...
    GarenWang阅读 3,437评论 0 2
  • 题目1:如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisib...
    饥人谷_桶饭阅读 1,657评论 0 1
  • 如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisible实现...
    _Dot912阅读 5,613评论 10 8
  • 1.懒加载原理 原理:先将img标签中的src链接设为同一张图片(空白图片),将其真正的图片地址存储再img标签的...
    喵妈阅读 8,596评论 0 3