`

Javascript 瀑布流式布局及其动态效果的实现

 
阅读更多

参考:http://test.yvlou.com/?p=74

瀑布流式布局在很多地方都能看到了,pinterest(pinterest.com)上有很棒的瀑布流布局。可以通过如下方法实现一个瀑布流式布局。

(参见瀑布流式布局Demo,图片来自pinterest~~)

 

  1. 每个流的宽度是相同的,记为w,显然每个元素的高度是不一定相同的。
  2. 根据屏幕的宽度和w得到流的列数,记为column。
  3. 每列的初始高度为0。
  4. 找到当前最短的列i,把新的元素排到第i列,并更新列i的长度(把元素的高度加上即可)。
  5. 重复4直到排列完成所有的元素。

重新排列,重新排列发生在显示区域的宽度发生变化的时候,比如当变窄时候,元素就会被挤到下面去。那么如何实现重新排列呢?其实很简单,只要按照刚刚的方法重新计算一遍,就可以得到新的位置了,区别仅仅在于参数column发生了变化。不过这个还不够酷,在尝试加上一些动态效果。一种可行的方法就是让元素块从原来的位置移动到新的位置,这样看起来就像自适应的布局了,而且效果不错。

在实现中,可以通过Ajax从后台读取数据,通过js设置元素的位置来进行布局,并且绑定resize事件的处理函数,动画效果可以使用jquery的animate,使用jQuery实现了一个简单的demo,参见 http://aftercake.com/demo/,调整窗口大小可以进行重新排列。当然了,有很多插件可以实现更强大的功能~~,比如

http://masonry.desandro.com/,以后就只需要写几行代码了。。。

分享到:
评论
1 楼 coding1688 2013-01-16  
博主说的不错,我在实现瀑布流布局时也用的masonry插件,有兴趣的可以看看:四步轻松搞定瀑布流布局http://www.vktone.com/articles/waterfall-layout-use-jquery-masonry.html

相关推荐

    使用动态加载懒加载瀑布流布局以及LightBox实现一个图片搜索效果

    使用动态加载(懒加载)、瀑布流布局以及LightBox实现一个图片搜索效果

    解析javascript瀑布流原理实现图片滚动加载

    瀑布流,又称瀑布流式布局。是比较流行的一种网站页面布局,视觉表现为参差不齐的多栏布局,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部。最早采用此布局的网站是Pinterest,逐渐在国内...

    Wookmark是一款非常炫酷和实用的仿Pinterest网站jQuery瀑布流动态网格布局插件

    Wookmark是一款非常炫酷和实用的仿Pinterest网站jQuery瀑布流动态网格布局...使用该插件可以制对网格图片进行过滤、排序操作,可以动态加载图片,可以制作图片lightbox效果,还可以制作响应式的瀑布流网格布局界面。

    JS示例 放大镜&图片懒加载&返回顶部&瀑布流&手风琴

    内容概要: 包含了基于JavaScript实现的放大镜功能、延迟加载图片、快速返回页面顶部、瀑布流布局以及手风琴效果的代码示例。 适用人群: 适用于前端开发人员、Web设计师,以及希望学习如何实现常见前端交互效果的...

    html+css+js瀑布流效果

    日常布局是不是很烦恼,动态加载也需要费心,拿来看看这个瀑布流的卡片展示叭

    仿小红书前端设计的网页 html css js

    - 瀑布流布局使得内容展示更加动态、有序,营造良好的浏览体验。 2. **个人详情页**: - 展示用户的个人信息,如头像、昵称、个性签名等。 - 列出用户发布的所有内容,按时间顺序排列。 - 显示用户收藏的内容,方便...

    Android UI组件实例集合

    实现了类似于迷尚android和蘑菇街android的瀑布流布局。 19、JakeWharton-ActionBarSherlock 是Android compatibility library 的一个扩展, 不知道什么原因 Android 兼容开发包没有包含ActionBar. 所以就有了...

    python入门到高级全栈工程师培训 第3期 附课件代码

    python入门到高级全栈工程师培训视频学习资料;本资料仅用于学习,请查看后24小时之内删除。 【课程内容】 第1章 01 计算机发展史 ...15 再插两道JavaScript面试题 16 Model操作之select_related以及...

    WEB设计大全

    Web设计进程 <br>2.1 进程需求 <br>2.2 特别的Web进程 <br>2.3 基本的Web进程模型 <br>2.3.1 修正瀑布模型 <br>2.3.2 联合应用开发模型 <br>2.4 Web站点项目的途径 <br>2.5 目标和问题 ...

    WEB设计大全(part2)

    Web设计进程 <br>2.1 进程需求 <br>2.2 特别的Web进程 <br>2.3 基本的Web进程模型 <br>2.3.1 修正瀑布模型 <br>2.3.2 联合应用开发模型 <br>2.4 Web站点项目的途径 <br>2.5 目标和问题 ...

Global site tag (gtag.js) - Google Analytics