
网格
一个可以按照网格类型排列项目的组件.
网格
![]() | ![]() | ![]() | ![]() |
|---|---|---|---|
| 共济会 | 说明 | 框架图形 | 包装 网格 |
- 共济会: MesonryGrid是一个网格,可以堆放与一叠砖一样宽的物品. 将所有图像的宽度调整到相同的大小,找到最低高度一栏,并插入新项目.
- 说明:"正经"是一个印刷名词,意思是"适合一行宽". JustifiedGrid是一个网格,根据给定大小的行来填充项目.
- 框架图形:"Frame"是一个印刷名词,意思是"它适合一行宽". FrameGrid是一个网格,根据给定大小的行填充项目.
- 包装 网格: PackingGrid是一个显示重要项目较大而不会牺牲项目重量的网格. 将行和列相分离,使项目能动态地被放入水平和垂直空间,而不是有序地排列.
文档
下载和安装
从 repo 直接下载 dist 文件或通过 npm 安装它 .
$ npm install @egjs/grid
<script src="//naver.github.io/egjs-grid/release/latest/dist/grid.min.js"></script>
如何使用
import { MasonryGrid, JustifiedGrid, FrameGrid, PackingGrid } from "@egjs/grid";
// Grid.MasonryGrid
const grid = new MasonryGrid(container, {
gap: 5,
});
grid.renderItems();
使用更快的懒惰渲染( L)
- 当
loading="lazy"或者说data-grid-lazy="true"使用(外部懒惰加载)属性,立即对物品进行渲染. 当物品被装入时,它们依次被制成.
<img src="..." />
<img src="..." />
<img src="..." loading="lazy" />
<img data-grid-lazy="true" />
- 如果您使用
data-grid-width财务报告和审定财务报表data-grid-height属性、自我大小、子图像和视频元素自动调整,直到装入完成.
<div data-grid-width="100" data-grid-height="100">
<img src="..." />
<img src="..." />
<img src="..." />
</div>
- 如果您使用
data-grid-skip="true"属性,即使存在图像本身和孩子图像,以及视频元素,也可以省略.
<div data-grid-skip="true">
<img src="..." />
<img src="..." />
<img src="..." />
</div>
检测集装箱和儿童的尺寸变化
Grid通过窗口调整大小事件来计算容器和孩子的大小. 然而,即使窗口的大小没有变化,事件容器和孩子的大小也会有变化. 最早的渲染问题大多也是这样.
在这种情况下,我建议 调整观察员的大小 给你的.
提供 useResizeObserver 用于检测容器大小变化的选项 observeChildren 选项以检测儿童的大小变化.
import { MasonryGrid, JustifiedGrid, FrameGrid, PackingGrid } from "@egjs/grid";
// Grid.MasonryGrid
const grid = new MasonryGrid(container, {
gap: 5,
useResizeObserver: true,
observeChildren: true,
});
grid.renderItems();
预猜性能大小或隐形物品.
如果所有物品都一样大小呢?
如果你使用 isEqualSize 选项,所有项目都被认为大小相同.
每次调整大小只计算一个项目的大小.
添加 data-grid-not-equal-size="true" 属性,如果有一个例外项目,其大小需要在使用等分码时计算.
<div class="item item1"></div>
<div class="item item1"></div>
<div class="item item1"></div>
<!--item2 is a different size than item1.-->
<div class="item item2" data-grid-not-equal-size="true"></div>
如果有一个大小组存在呢?
isEqualSize 假设所有项目都是平等的。 但如果有两个以上的大小组,请使用 data-grid-size-group。 。 。 .
<!--item1 has the same size.-->
<div class="item item1" data-grid-size-group="1"></div>
<div class="item item1" data-grid-size-group="1"></div>
<!--item2 has the same size.-->
<div class="item item2" data-grid-size-group="2"></div>
<div class="item item2" data-grid-size-group="2"></div>
如果所有物品都不改变大小怎么办?
如果所有项目没有恒定大小,请使用 isConstantSize 选项。 调整大小不计算项目大小.
如果您想要重新计算, 请使用 .updateItems(items, { useOrgResize: true }) 方法或 .renderItems({ useOrgResize: true }) 方法.
软件包
| 软件包 | 版本 | 说明 |
|---|---|---|
| @egjs/反应-网格 | 反应 @ egjs/ grid 的端口 | |
| @ egjs/ngx- grid | 角质 @ egjs/ grid 的端口 | |
| @egjs/vue-grid (英语) | Vue.js (英语) @ egjs/ grid 的端口 | |
| @ egjs/ svelte- grid | 丝绒 @ egjs/ grid 的端口 |
支持的浏览器
以下为所支持的浏览器.
| Internet 浏览器 | 颜色 | 火花 | 萨法里 | iOS系统 | 机器人 |
|---|---|---|---|---|---|
| 9个+ | 最新 | 最新 | 最新 | 7个+ | 4+(填充2.2+) |
如何开始开发egjs-grid?
任何有兴趣开发egjs-grid的人,请遵循以下指示.
发展环境
1. 清除储存库
克隆egjs-grid寄存器并安装依赖模块.
# Clone the repository.
$ git clone https://github.com/naver/egjs-grid.git
2. 安装依赖关系
# Install the dependency modules.
$ npm install
3个. npm start
运行 storybook 促进发展.
打开 http://localhost:6006 (英语) 在浏览器中查看.
如果您做了编辑, 页面会重新装入 .
您也会看到控制台上的任何错误 .
3个. npm build
使用 npm 脚本构建网格
$ npm run build
完整的构建完成后将创建两个文件夹 .
- 数字 文件夹:包括 电网.js 财务报告和审定财务报表 互联网档案馆的存檔,存档日期2013-12-02 文档.
- 医生 文件夹:包括 API 文档。 文件的主页是: 文件/索引.html。 。 。 .
线性
为了保持同样的代码风格,我们采用了 ESLint 语录 保持我们的代码质量。 这个 规则 已根据 Airbnb JavaScript 样式指南。 。 。 . 设置您的编辑器以检查或运行到命令下方的 Linting .
$ npm run lint
测试
一旦您创建了分支并完成了开发, 您必须进行测试运行 npm test 命令,然后将代码推入远程仓库.
$ npm run test
运行 npm test 命令将开始 摩诃迦叶 通过测试 卡玛跑者。 。 。 .
错误报告
如果你发现虫子,请向我们报告 打开一个新的 问题 (原始内容存档于2018-09-29). on GitHub.
许可证
egjs-grid 发布于 麻省理工学院许可证。 。 。 .
Copyright (c) 2021-present NAVER Corp.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.



