美文网首页
图片懒加载&瀑布流

图片懒加载&瀑布流

作者: 抱着熊喵啃什么 | 来源:发表于2019-03-19 23:53 被阅读0次

我们在做需要展示大量图片的网站时,为了减少网络压力、提升用户体验,通常会对图片进行懒加载处理,所以归纳整理一下图片懒加载的原理及代码,瀑布流其实也是懒加载的一种特殊处理展示的方式,一并记录。

懒加载

图片懒加载的核心思路其实就是将图片的真实src放置在另一个属性中,使用js加以判断图片的是否出现在视窗内:

$node.offset().top <= $(window).height() + $(window).scrollTop()

预留一定的滚动距离,图片即将出现在视窗内时将真实的src属性替换进去进行加载。
为了避免已经进行替换过的图片重复进行操作,可以在属性中添加特征值,检测到特征值存在时不予操作:

<img src="" alt="" data-loaded="1" data-src="">
start()

$(window).on('scroll',function(){
    start()
})

function start(){
    $('container img').not([data-loaded]).each(function(){
        var $node = $(this)
        if (isShow($node)){
            setTimeout(function(){
                loadImg($node)
            },500)
        }
    })
}

function isShow($ndoe){
    return $node.offset().top <= $(window).top() + $(window).scrollTop()
}

function loadImg($img){
    $img.attr('src',$img.attr('data-src'))
    $img.attr('data-loaded','loaded')
}

瀑布流

使用瀑布流布局展示 要考虑窗口自适应问题 所以首要问题就是确定每行展示元素的数量

var colCount
var imgWidth = $('.waterfall img').outerWidth(true) //考虑元素的padding和margin
colCount = Math.floor($('.waterfall').width()/imgWidth)

使用数组存储每列高度,新元素设置position:absoulte,left值设置为数组中最小值。

相关文章

  • 前端一些工具

    图片懒加载 lazyloadhttps://github.com/tuupola/jq... 瀑布流 Masonr...

  • 图片懒加载&瀑布流

    我们在做需要展示大量图片的网站时,为了减少网络压力、提升用户体验,通常会对图片进行懒加载处理,所以归纳整理一下图片...

  • 新闻瀑布流懒加载

    新闻瀑布流懒加载效果 代码

  • 常见小效果整理(瀑布流、懒加载)

    瀑布流 注意:笔者此种方式需要图片宽度一致,高度可不一。 瀑布流效果 代码如下 懒加载 运行效果如下

  • 常用效果(瀑布流.懒加载.木桶布局)

    瀑布流.木桶.新闻页懒加载demogif

  • 9-5bug处理

    关于RecyleView瀑布流滑动加载数据,顶部出现空白。 关于RecyleView瀑布流显示加载图片乱跳 下拉刷...

  • 懒加载、瀑布流

    懒加载 懒加载是通过延迟加载不可见元素,提升网页性能,减少同一时间服务器请求的一种方式。当用户滚动当前页面时再去自...

  • 懒加载和瀑布流的原理

    瀑布流-新浪新闻 瀑布流项目结合懒加载预览地址 懒加载原理 为了防止页面一次性向服务器发送大量请求,导致服务器响应...

  • 预加载、延迟加载、瀑布流、拖拽

    1.预加载-图片: 2.延迟加载 3.瀑布流 瀑布流: 物体大小: 4.拖拽 磁性吸附例子: 虚线框拖拽

  • 瀑布流加载图片

    瀑布流,又称瀑布流式布局。是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种...

网友评论

      本文标题:图片懒加载&瀑布流

      本文链接:https://www.haomeiwen.com/subject/rxtamqtx.html