`
zhouyrt
  • 浏览: 1162158 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

瀑布流的简单实现

 
阅读更多

基本流程

  • 第一屏图片不用Ajax加载,默认写在页面上。第一屏要以最快效率打开,待JS文件下载后再Ajax请求明显要慢。
  • 滚动到最后一行图片时开始加载图片,每次加载两行,每行4张图片(4列布局)。位置计算是关键的,可以以页面中翻页容器或页面footer为参考点,如果scrollTop大概等于翻页容器或footer的top则开始加载。这里的大概根据需求适当缩减100-300px。

加载规则

  • 各列容器按高度从低到高排序
  • Ajax请求的图片数据按高度从高到低排序
  • 拼凑HTML片段后把最高的item添加到最低的列容器中,以尽量保证拖动多次后各列高度相当,不至于某列空白太多

一些补充

  • 加载的元素item一般采用动画淡出(fadeIn)
  • 滚动事件scroll的hander被调用太频繁,可采用“防弹跳”技术,即设定一个时间值,比如300ms,300ms内的调用被clearTimeout掉。可避免拖动滚动条时卡。
// 防止弹跳,避免scroll时频繁调用
function debounce(fn, wait) {
    var timer
    return function() {
        var later = function() {
            timer = null
            fn(arguments)
        }
        clearTimeout(timer)
        timer = setTimeout(later, wait)
    }
}

 

 

分享到:
评论
1 楼 zhangguowei 2014-05-14  
:    :twisted

相关推荐

    Android 瀑布流简单实现

    在Android中实现瀑布流,通常涉及到以下几个关键知识点: 1. **自定义ViewGroup**: - 瀑布流的核心在于自定义一个ViewGroup,如`WaterfallView`,这个类需要继承自`FrameLayout`或`LinearLayout`,用于管理子View...

    ios-瀑布流简易实现.zip

    在iOS开发中,实现瀑布流布局通常会利用UICollectionView,因为它的灵活性和可定制性非常强,可以自定义cell的布局。为了实现瀑布流,我们需要关注以下关键步骤: 1. **自定义UICollectionViewCell**:首先,你需要...

    瀑布流StaggeredGrid实现瀑布流的效果,

    开发者通常需要自定义ViewGroup或者使用第三方库如FlowLayout来实现瀑布流,但随着Android Support Library的更新,StaggeredGridAdapter和StaggeredGridView类的引入,使得瀑布流的实现变得更加简单和高效。...

    ios-瀑布流简单实现.zip

    瀑布流布局,也被称为“Masonry Layout”或...压缩包中的"瀑布流"可能是示例代码或项目,通过查看和学习这些代码,你可以更深入地理解如何在实际项目中实现瀑布流布局。记得在实践中注意性能优化,确保用户体验流畅。

    iOS简单瀑布流的实现

    在这个“iOS简单瀑布流的实现”中,我们将探讨如何创建一个基础的瀑布流布局,以及可能需要进行的扩展。 1. **基本概念**:瀑布流的核心在于计算每个单元格的位置和大小,使其能在不同列中适配。这通常涉及两个关键...

    微信小程序-实现瀑布流布局demo源代码

    本教程将通过一个具体的实例——“微信小程序-实现瀑布流布局demo”来探讨如何在微信小程序中实现瀑布流布局和无限下拉加载功能。 首先,我们要理解瀑布流布局。这是一种常见的网页设计布局方式,其特点是以多列...

    手摸手,带你实现移动端H5瀑布流布局.doc

    实现移动端瀑布流布局可以分为CSS实现和JS实现两种方法。 CSS实现主要是用到一些专门的样式属性,实现起来简单,但是往往会有兼容性问题。例如使用column多列布局方法,可以使用column-count属性设置共有几列,...

    安卓瀑布流相关-瀑布流Android实现zip包.zip

    在这个"安卓瀑布流相关-瀑布流Android实现zip包.zip"中,包含了实现Android瀑布流布局的相关资源。 首先,我们来看`JavaApk源码说明.txt`,这个文件可能包含了对整个源码包的简单介绍或使用指南。通常,这种文本...

    简单的瀑布流的实现

    本项目通过使用两个UITableView实现了简单的瀑布流效果,这可能是为了简化实现过程,因为UICollectionView在处理复杂的布局时更加灵活。下面,我们将详细讨论如何利用UITableView实现瀑布流布局。 首先,我们需要...

    伪瀑布流_uniapp瀑布流_uniapp瀑布流_插件_

    描述中提到的“uniapp插件(组件) 拖入即用 只需要引入 相关dom”,意味着这个插件是一个高度封装的解决方案,开发者无需深入了解瀑布流布局的复杂实现,只需简单地将插件拖入项目,并在页面中引入对应的DOM元素,...

    8种Android瀑布流实现方式

    PinterestLayout是专为实现Pinterest风格瀑布流设计的开源库,它提供了一种简单的方式来创建和管理瀑布流,自动处理列的数量和item的布局。 6. **Ultra Pull To Refresh**: 这是一个包含下拉刷新和上拉加载更多...

    网络图片RecyclerView瀑布流的实现

    在Android应用开发中,RecyclerView是一种常用的布局管理器,它提供了高度可定制的列表视图,可以用来展示大量...在RecyclerViewHttpDemo这个项目中,开发者很可能是通过以上步骤实现了一个简单的网络图片瀑布流示例。

    安卓瀑布流相关-Android瀑布流照片墙实现体验不规则排列的美感.rar

    - **RecyclerView + GridLayoutManager**:利用RecyclerView的GridLayoutManager,配合SpanSizeLookup可以实现简单的瀑布流效果。但是这种方式不能很好地处理元素高度不一致的情况。 - **...

    iOS瀑布流的实现

    - 如果嫌自定义布局繁琐,可以使用第三方库如`WaterfallFlow`、`IGListKit`或`FCHasonryCollectionView`等,它们提供了更简单的API来快速实现瀑布流布局。 通过以上步骤,我们可以构建出一个具有较高可扩展性的...

    横向排序的瀑布流jquery实现,完整项目

    在这个"横向排序的瀑布流jquery实现"项目中,开发者构建了一个简单而实用的JavaScript模块,利用jQuery库来处理横向的瀑布流布局。 首先,我们需要理解瀑布流布局的基本概念。瀑布流布局的特点是每个元素(如图片)...

    基于jQuery实现瀑布流效果

    基于jQuery实现瀑布流效果,主要涉及以下几个核心知识点: 1. **jQuery库**:jQuery是一个轻量级的JavaScript库,它简化了HTML文档遍历、事件处理、动画设计以及Ajax交互。在实现瀑布流时,我们利用jQuery提供的API...

    ScrollView 瀑布流实现

    在Android中,我们可以使用GridView或者RecyclerView配合StaggeredGridLayoutManager来实现简单的瀑布流,但这些组件在自定义性上可能无法满足所有需求,所以我们会选择自定义ScrollView。 1. 自定义ScrollView:...

    瀑布流布局,点击加载更多效果

    在实现瀑布流布局时,layui的CSS可以帮助我们设定元素的样式,使其符合瀑布流的视觉效果。同时,layui的JavaScript模块可以与jQuery结合使用,实现动态加载和交互功能。 例如,我们可以使用layui的`layui.layer`...

    瀑布流的简单实现demo,当成原生组件来用的

    在这个名为"waterfalldemo"的压缩包中,我们可以期待找到一个关于瀑布流布局的简单实现示例。这个组件被设计成原生组件的形式,意味着它是一个自包含、可复用的代码模块,开发者可以将其集成到自己的项目中,而不必...

Global site tag (gtag.js) - Google Analytics