首页 > 传媒 > 关键词  > 技术大咖最新资讯  > 正文

卓新智趣技术大咖分享排序如何实现瀑布流方式

2016-12-09 15:29 · 稿源: 站长之家用户

随着pinterest的走红,瀑布流式的布局被越来越多的网站所使用,这种布局确实有很多好处,图片列表页有很强大的视觉感染力,而且还提高了用户“发现好图”的效率。瀑布流的实现有很多种方式,之前淘宝UED有篇文章详细的介绍过各种方式的优劣。今天我们主要讨论一下相对排序来实现瀑布流的方式 即 Pinterest 采用的方式。

先上Demo

瀑布流排序 :

瀑布流+无限拖

首先说下瀑布流的排序算法,参考demo1,思路非常简单,我们把瀑布流拆成三个部分来看:容器、列、格子

1.为了保证容器的居中,将容器的宽度设置为 列数* (格子宽度+间距) – 间距,这里需要注意的是 当容器的宽度计算出来之后再显示,否则会造成页面宽度的抖动,影响体验。;

2.先计算当前屏幕最多能容纳几列瀑布,其值为 "向下取整(屏幕可见区域宽度/(格子宽度+间距))";

3.排序开始,先把前N(N为列数)个格子分别放到每一列中,然后每次寻找高度最小的一列,把格子放进去(left值为列序号*(格子宽度+间距),top值为 列高+间距),并刷新列的高度,遍历所有格子直到所有的格子都被排序。

最后将事件句柄绑定到window.onload和window.onresize上,一个瀑布流布局的页面就出来了。

这样的排序算法看起来很美好,可真正结合异步加载数据应用到页面里还要解决以下几个问题

1.当缩放浏览器窗口时会不断地触发事件,如果每次都响应的话会狂耗性能,需要在缩放动作结束后再执行重排方法。

2.如果服务器无法给出图片高度,需要在图片加载完毕之后再进行重排。

3.页面滚动到底部请求数据成功之后只对新增的节点重排。

首先个问题我是用setTimeout和clearTimeout来解决的,思路是窗口变化之后开始计时,如果窗口还在变换则从新开始计时,窗口不再变化则延时(很短的时间)触发重排事件。暂时只想到这个,这里应该还有更好的方法。

代码如下

var re;

window.onresize=function() {

clearTimeout(re);

re=setTimeout(resize,100);

};

第二个问题在于如果每次有新的数据加载,都要对整个容器内的节点进行重排,非常消耗性能。解决思路:

1.将新增格子保存在数组中作为参数传递给排序算法,仅对新格子进行遍历和操作。

2.将列保存在全局数组中,每次重排或者新增格子之后更新数组的数据,这样下次执行排序算法的时候可以直接调用。

第三个问题是如果服务器无法给出图片尺寸,那么必须在图片完全加载完毕之后才可进行排序(因为高度是实时获取的,图片不全高度有误差),这里没有什么好办法,只能遍历图片,每张图片加载成功后执%

推广

特别声明:以上内容(如有图片或视频亦包括在内)均为站长传媒平台用户上传并发布,本平台仅提供信息存储服务,对本页面内容所引致的错误、不确或遗漏,概不负任何法律责任,相关信息仅供参考。站长之家将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。任何单位或个人认为本页面内容可能涉嫌侵犯其知识产权或存在不实内容时,可及时向站长之家提出书面权利通知或不实情况说明,并提供身份证明、权属证明及详细侵权或不实情况证明(点击查看反馈联系地址)。本网站在收到上述法律文件后,将会依法依规核实信息,沟通删除相关内容或断开相关链接。

  • 相关推荐
  • 聚焦制造业智能化转型 中国科学技术大学依托昇腾突破知识增强大模型关键技术

    中国科学技术大学宋骞团队基于昇腾平台开发了工业知识图谱构建框架和大模型增强推理技术。该研究通过融合领域小模型与大语言模型,构建了"初始识别-知识抽取-知识引导反思"三阶段框架,显著提升了知识抽取准确性。在智能运维系统应用中,团队采用ETL架构处理多模态数据,结合RDF语义网技术构建知识图谱,并研发故障智能预测诊断模块。同时创新性地提出知识增强与过滤框架,利用PLM嵌入空间降低计算负担,有效提升知识增强的灵活性。研究成果显著提升了工业设备智能运维水平,实现了核心技术的自主创新适配,为构建安全高效的现代工业体系提供关键技术支撑。

  • 极速、可靠、灵活|移动云以云硬盘为前沿技术落地提供有力支撑

    2025年4月,第十八届中国电子信息年会在成都成功召开。移动云举办“AI时代先进存力:构建新型数据存储前沿基础设施”论坛,聚焦AI大模型应用下数据存储、处理及算法框架的高要求。论坛探讨了存储技术、架构和安全创新,旨在推动存储技术发展,构建先进可靠的存力基石。移动云推出极速型云硬盘等产品,满足高IOPS、低延迟需求,并全面接入国产大模型DeepSeek,降低技术门槛,助力用户实现智能化升级。通过完善产品矩阵,满足多元业务场景需求,为千行百业数字化转型提供高质量存储保障。

  • 时空壶X1:以技术硬实力领航AI同传领域

    时空壶X1同声传译器凭借AI技术革新翻译行业,支持40种语言93种口音识别,翻译准确率达95%。其自主研发的Babel OS系统整合语音识别、翻译与合成功能,通过端云协同技术确保复杂环境下的稳定服务。产品已应用于国际会议、商务谈判等场景,支持20人5种语言实时交互,并创新推出"演讲翻译"模式,单设备即可服务50名观众。在深圳文博会等国际活动中表现优异,噪声环境下仍保持92%识别率。X1推动行业从传统人工翻译向轻量化、智能化转型,降低企业使用门槛,成为跨国交流的核心工具。

  • 远东电缆石墨烯材料技术赋能新能源转型

    石墨烯正从实验室走向产业核心,被誉为能源革命的“梦幻材料”。凭借超强导电性、导热性和机械强度,直击新能源效率与寿命痛点。国内企业远东电缆率先突破分子级焊接技术,开发石墨烯-铜复合材料,大幅提升导电与散热性能。该材料已通过权威认证,未来将应用于5G基站、新能源车电控系统等高功率场景,重塑能源存储与传输规则。

  • 业界首例中国电信完成长距跨DC分布式无损智算推理网络技术验证

    中国电信广东公司联合中国电信研究院在智算网络领域实现重大突破,成功完成DeepSeek-671B满血版长距跨数据中心分布式无损计算推理网络技术验证。该成果为企业按需扩容算力及推理数据本地化存储提供了突破性技术方案,标志着中国电信在智算网络技术创新上迈出关键一步。

  • 【点击报名】xMEMS Live - Asia 2025 | 技术研讨会

    xMEMS将于2025年9月16日(台北)和18日(深圳)举办技术研讨会,聚焦高保真音频解决方案及PiezoMEMS平台在AI领域的应用。活动将展示Sycamore近场扬声器、Cypress主动降噪方案等创新产品,并探讨μCooling芯片风扇等散热技术。现场提供与行业专家交流机会,助力提升音频品质和释放AI潜能。

  • 卢伟冰回应格力能否接入米家App:技术上没问题

    今日,小米米家App宣布,西门子家电正式接入米家App,支持小米澎湃智联、超级小爱控制等功能。 小米集团总裁卢伟冰表示,欢迎更多的家电品牌接入米家,一起加速传统家电的智能化,让更多用户更早地体验到智能科技所带来的美好生活。” 有网友向卢伟冰提问:格力能接吗”,卢伟冰回复称技术上没问题”。

  • 沙漠风电遇上 “中国心脏” ,海辰储能以绿色技术激活中东风能

    厦门海辰储能在中东沙漠部署"沙漠之鹰"储能系统,与风电项目一体化运行,可在50℃高温下稳定工作,将间歇性风电转化为持续供电。作为全球储能电池出货量前三的企业,海辰通过技术创新实现零碳工厂,能源利用效率提升30%。其"HIMPACT203"战略规划到2037年研发长效储能技术、推动产业链碳中和等目标。公司产品覆盖全球,海外收入占比从2022年0.1%跃升至2024年28.6%,并针对能源贫困地区推出适配产品。海辰以167%的出货量增速领跑行业,其长时储能和钠离子电池技术正解决可再生能源间歇性痛点,为全球碳中和提供可行路径。

  • 昆仑万维技术周启幕:SkyReels模型重塑内容创作基建

    2025年8月11日,昆仑万维启动SkyWork+AI技术发布周,将连续五天发布五大领域AI模型:视频生成模型Skyreels、世界模型、生图一体化模型、智能体(Agent)模型和AI音乐创作模型Mureka。首日发布的Skyreels-A3是全球首个支持分钟级长视频生成的模型,通过四大技术创新解决直播电商等场景痛点,可实现180秒连贯视频生成、影视级运镜控制与自然动作交互。该模型采用多模态协同生成范式,突破传统视频生成技术误差累积限制,并通过Step蒸馏技术将推理步数压缩至4步,生成时间缩短至80秒。商业化方面,昆仑万维已形成"研发-产品变现-现金流反哺"闭环,2025年Q1经营性现金流净额增长58.3%,旗下DramaWave、Mureka等产品年化流水分别达1.2亿和1200万美元。此次技术周标志着中国AI企业首次跑通规模化盈利路径。

  • 2025香港黄金交易平台巅峰对决:宝富金业如何领跑技术革命

    2025年香港贵金属市场在全球地缘动荡与经济不确定性加剧背景下实现爆发式增长。本地黄金日均交易量突破150亿美元创历史新高,宝富金业凭借“区块链+三重监管”创新模式异军突起,成为新一代投资者信赖的交易门户。文章基于2000+用户调研数据,深度解析香港十大合规平台核心竞争力,为不同风格投资者提供精准匹配指南。建议通过“监管资质→技术验证→成本测算”三�

今日大家都在搜的词: