懒加载

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

 function isVisible($node){
      var nodeTop = $node.offset().top
      var windowHeight = $(window).height()
      var nodeScroll = $(window).scrollTop()
      if (nodeTop < windowHeight + nodeScroll && nodeTop > nodeScroll){
          console.log('元素出现在窗口可视范围中')
      }
 }

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

$('window').on('scroll', function(){
      var nodeTop = $node.offset().top
      var windowHeight = $(window).height()
      var nodeScroll = $(window).scrollTop()
      if (nodeTop < windowHeight + nodeScroll && nodeTop > nodeScroll){
          console.log(true)
      }
})

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

代码

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

先设置图片的data-set属性(作用就是为了存取值)值为其图片路径,由于不是src,所以不会发送http请求。 然后我们计算出页面scrollTop的高度和浏览器的高度之和, 如果图片举例页面顶端的坐标Y(相对于整个页面,而不是浏览器窗口)小于前两者之和,就说明图片就要显示出来了(合适的时机,当然也可以是其他情况),这时候我们再将 data-set 属性替换为 src 属性即可。
代码核心

    function lazyRender(){
        $('img').each(function(){    //遍历每一张图片
            if (checkShow($(this)) && !isLoaded($(this))) {  //检测图片是否位于当前窗口中、图片是否已加载
                loadImg($(this)) //利用`attr`替换图片属性
            }
        })
    }

4.实现视频中的图片懒加载效果

代码

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

相关阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,711评论 1 92
  • 如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisible实现...
    _Dot912阅读 5,654评论 10 8
  • 1.如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVisible...
    GarenWang阅读 3,505评论 0 2
  • 1、如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。 先理解两个概念 元素顶部“露...
    zh_yang阅读 3,008评论 0 1
  • 问答 1. 如何判断一个元素是否出现在窗口可视范围(浏览器的上边缘和下边缘之间,肉眼可视)。写一个函数 isVis...
    小木子2016阅读 1,571评论 0 0

友情链接更多精彩内容