童话说说技术创业美文职业
投稿投诉
职业母婴
职场个人
历史治疗
笔记技能
美文纠纷
幽默家庭
范文作文
乐趣解密
创业案例
社会工作
新闻家居
心理安全
技术八卦
仲裁思考
生活时事
运势奇闻
说说企业
魅力社交
安好健康
传统笑话
童话初中
男女饮食
周易阅读
爱好两性

瀑布流布局浅析

8月12日 相见欢投稿
  如果你经常网上冲浪,这样参差不齐的多栏布局,是不是很眼熟啊?
  类似的布局,似乎一夜之间出现在国内外大大小小的网站上,比如Pinterest(貌似是最早使用这种布局的网站了),Mark之,蘑菇街,点点网,以及淘宝最新上线的“哇哦”等等,倒是很流行哈在淘宝即将上线的众多产品中,你还会大量看到这样的形式呢。
  这种布局适合于小数据块,每个数据块内容相近且没有侧重。通常,随着页面滚动条向下滚动,这种布局还会不断加载数据块并附加至当前尾部。所以,我们给这样的布局起了一个形象的名字瀑布流式布局。
  几种实现方式
  随着越来越多设计师爱用这种布局,我们作为前端,要尽可能满足视觉交互设计师的需求。所以,我们整理了下这种布局的几种实现方式,有三种:
  1)传统多列浮动。即蘑菇街和哇哦采用的方式,如下图所示:
  各列固定宽度,并且左浮动;
  一列中的数据块为一组,列中的每个数据块依次排列即可;
  更多数据加载时,需要分别插入到不同的列上;
  线上例子。
  优点:
  布局简单,应该说没啥特别的难点;
  不用明确知道数据块高度,当数据块中有图片时,就不需要指定图片高度。
  缺点:
  列数固定,扩展不易,当浏览器窗口大小变化时,只能固定的x列,如果要添加一列,很难调整数据块的排列;
  滚动加载更多数据时,还要指定插入到第几列中,还是不方便。
  2)CSS3定义。W3C中有讲述关于多列布局的文档,排列出来的样子:
  由chromeff浏览器直接渲染出来,可以指定容器的列个数,列间距,列中间边框,列宽度来实现;
  container{
  webkitcolumncount:5;
  webkitcolumngap:10
  webkitcolumnrule:5pxsolid333;
  webkitcolumnwidth:210
  mozcolumncount:5;
  mozcolumngap:20
  mozcolumnrule:5pxsolid333;
  mozcolumnwidth:210
  columncount:5;
  columngap:10
  columnrule:5pxsolid333;
  columnwidth:210
  }
  columncount为列数;columngap为每列间隔距离;columnrule为间隔边线大小;columnwidth为每列宽度;当只设置columnwidth时,浏览器窗口小于一列宽度时,列中内容自动隐藏;当只设置columncount时,平均计算每列宽度,列内内容超出则隐藏;都设了columncount和columnwidth,浏览器会根据count计算宽度和width比较,取大的那个值作为每列宽度,然后当窗口缩小时,width的值为每列最小宽度。这边其实很简单,简易自己尝试下,详细可参考https:developer。mozilla。orgenCSS3Columns中的说明。
  线上列子。
  优点:
  直接CSS定义,最方便了;
  扩展方便,直接往容器里添加内容即可。
  缺点:
  只有高级浏览器中才能使用;
  还有一个缺点,他的数据块排列是从上到下排列到一定高度后,再把剩余元素依次添加到下一列,这个本质上就不一样了;
  鉴于这两个主要缺点,注定了该方法只能局限于高端浏览器,而且,更适合于文字多栏排列。
  3)绝对定位。即Pinterest,Mark之,KISSY采用的方式:
  可谓是最优的一种方案,方便添加数据内容,窗口变化,列数数据块都会自动调整;
  线上列子。
  缺点:
  需要实现知道数据块高度,如果其中包含图片,需要知道图片高度;
  JS动态计算数据块位置,当窗口缩放频繁,可能会狂耗性能。
  KISSY。Waterfall实现思路
  KISSY的Waterfall组件主要包含两个部分,一个是对现有数据块进行排列计算各自所在的位置;二是下拉滚动时,触发加载数据操作,并把数据添加到目标容器中。
  1)数据块排列,算法步骤简述下:
  初始化时,对容器中已有数据块元素进行第一次计算,需要用户给定:a,容器元素以此获取容器总宽度;b,列宽度;c,最小列数;最终列数取的是容器宽度列宽度和最小列数的最大值,这样保证了,当窗口很小时,仍然出现最小列数的数据;
  获得列数后,需要保存每个列的当前高度,这样在添加每个数据块时,才知道起始高度是多少;
  依次取容器中的所有数据块,先寻找当前高度最小的某列,之后根据列序号,确定数据块的left,top值,left为所在列的序号乘以列宽,top为所在列的当前高度,最后更新所在列的当前高度加上这个数据块元素的高度,至此,插入一个元素结束;
  当所有元素插入完毕后,调整容器的高度为各列最大的高度值,结束依次调整;
  性能效率上的注意点:a,如果当前正在调整中,又触发了resize事件,需要将上次调整暂停后执行这次调整(见timedChunk函数);b,resize触发会很频繁,可以将回调函数缓存一段时候后执行,即当这段时间内多次触发了resize事件,但回调函数只会执行一次(见S。buffer函数)
  感兴趣的可以参见源码。
  2)异步加载数据,前面讲的是如何对容器中已有元素进行排列,但很多情况下,还需要不断加载新数据块,为此专门设计了一个独立的模块KISSY。Waterfall。Loader,其实这个功能就更简单了,仅包含两个步骤:
  绑定滚动事件,并确定预加载线高度值,即滚动到哪个高度后,需要去加载数据,其实这个就是列的最小高度值,这样当前滚动值和最小高度值比较一下即可判断出来,是否要触发加载数据;
  加载数据,为了不对数据源做太多限制,完全由使用者自己决定数据源从哪边获取和其格式,这样更好的方便用户使用。为此,该组件只提供一个load(success,end)接口,怎样load由用户自己去定义,而其中的successend,分别给出如何添加新数据(suceess即同addItems)如何停止加载的接口。这样真是太方便了
  感兴趣的可以参见源码。
  KISSY。Waterfall示例和文档
投诉 评论

竞品分析关于竞品分析,之前天行(天行Aeros)有篇文章《设计公式:简单有效的竞品分析》已经进行了介绍,本文在该文章的基础之上再进行一些分享,希望对大家有用。1,竞品分析竞……网页设计师的字体替换方法指南接下来的解决方案依赖于fontface来实现每一个多少都算是一种服务这意味着:它们都使用同样的基本技术,但是它们提供不同的字体库,授权选项,以及支付计划;是的,大部分是需要付费……一点儿网页空白空间设计的想法空白,在网页上主要是指除图形文字内容之外的空间。网页中的空白虽没有像山水画中“计白当黑”的那么浪漫,但他在引导用户视觉和创造流畅的视觉感受方面却是至关重要的。施乐……瀑布流布局浅析如果你经常网上冲浪,这样参差不齐的多栏布局,是不是很眼熟啊?类似的布局,似乎一夜之间出现在国内外大大小小的网站上,比如Pinterest(貌似是最早使用这种布局……强质感高光风格网页欣赏及其表现手法总结经常能见到这一类的风格的网页设计作品,它们有如下共同的特点。背景通常是纯色的柔和渐变,不添加任何的材质,色块的边缘部分通常会添加1像素的高光;在页面元素的边缘部分有着强烈的1像……提升用户体验:不可不知的心理学原理提升用户体验的基础是用户研究,而用户研究不是简单对于用户需求的白描。要真正做好这项工作。用户体验一词在国际上更为通行的叫法是UX(UsereXperience),以用户至……连续性的设计改善产品的体验“当一个人过马路的时候,他在斑马线上是从马路的一端,走到另一端。”我们可以观察到这个过程的变化。“种子、发芽、最后开花。”种子到开花的过程我们很少会看到,那是……合理的交互,恰当的视觉交互设计和视觉设计的重要性,业内已经达成了共识。最近看了iphone版海豚浏览器的设计方案,正好借机再陈述一下相关的设计原则。我想说的主要有三点:1。交互设计……互联网上的单点登录研究随着互联网络应用的普及,越来越多的人开始使用互联网上提供的服务。然而目前提供服务的网站大多采用用户名、口令的方式来识别用户身份,这使得用户需要经常性的输入自己的用户名、口令。显……移动设备手势设计初探嘿最近在做各种移动端的产品,设计啊体验啊操作啊,用的手都起茧,工作之余也思考了“手”这种较新的交互方式,以及它与界面的关系。本文从手势的种类,应用场景,存在的可用性问题以及如何……HTML5vsMobileApp谁将是主流前言HTML5的出现让移动平台的竞争由系统平台转向了浏览器之间:移动端的IE、Chrome、FireFox、Safari,亦或是新出现的浏览器,谁能达到在移动端对HTML……第三类行为社会化媒体时代的用户行为变迁被用户体验界奉为教科书级别的《don’tmakemethink》中,曾将互联网用户按照惯性行为划分为两类搜索型与浏览型。在社会化媒体兴起之前,这种划分确实是很具有概括力,并且能……
如何设计好用的触控手势译文结合用户体验设计和心理学来影响用户行为的发生改变交互设计流程的“闭环”问题不做这一步,用户调研就全白做了给设计师的网页动画设计基础指南腾讯干货!从四个方面帮你做好移动页面性能优化译文推荐:设计并非艺术译文交互设计初学者的完全指南功能确定之后,如何做好UCD概念设计?我从比我聪明的家伙们那里偷来了9个UI设计的秘密在你重新设计网页的时候考虑好用户体验H5三个设计方向的自我定位魔法造句用魔法造句大全磷资源产业的自主创新影响因素研究在我国规定酒后醉驾会受到什么惩罚最近老是肛裂,看了好几个医生都是好了又复发,出大钱挂了一个砖淘宝小卖家如何生存?手淘首页是关键经销商大会邀请函为什么贝壳、百度、蔚来值得放在一起研究?温馨妇女节祝福语21条汽车音响设备改装需注意的事项详细研究华为Mate40Pro超强视场融合技术,提升变焦同杨仲礼和袁集贤上都诗十首其人这一生,正是赢在和气,输在脾气,成在了大气

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找作文动态热点娱乐育儿情感教程科技体育养生教案探索美文旅游财经日志励志范文论文时尚保健游戏护肤业界