瀑布流页面设计最初我是在“花瓣”这个产品上看到的,最近一个电商网站也运用了这一设计方式,可能会显得产品更有特色吧。今天我们就讨论下怎么实现一个图片的瀑布流。
思路1:使用JS
通常数据以分页的形式从后端获取,前端加载图片,一行显示两个图片,图片高度要按比例显示。如果左侧图片高就把下一张图片放到右侧,相反如果右侧图片高,就把下一张图片放到左侧,这样可以保持整个页面的布局和谐。同时,在页面滚动到距下方50px时触发滚动加载下一页数据。
具体实现
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title>瀑布流</title>
<style>
html, body{
margin: 0;
padding: 0;
width: 100%;
}
ul{
margin: 0;
padding: 0;
list-style: none;
float: left;
}
li{
float: left;
}
</style>
</head>
<body>
<div>
<ul id="left"></ul>
<ul id="right"></ul>
</div>
<script>
// src需要替换成实际的图片地址
const data = [
[{
src: 'xxx',
name: 'test1'
}, {
src: 'xxx',
name: 'test2'
}, {
src: 'xxx',
name: 'test3'
}, {
src: 'xxx',
name: 'test4'
}, {
src: 'xxx',
name: 'test5'
}, {
src: 'xxx',
name: 'test6'
}],
[{
src: 'xxx',
name: 'test21'
}, {
src: 'xxx',
name: 'test22'
}, {
src: 'xxx',
name: 'test23'