minigrid是一款非常实用的动态网格瀑布流布局js插件。该瀑布流插件的大小只有2KB,纯js编写,没有任何外部依赖。
你可以使用CSS3动画来制作简单的网格动画,也可以和dynamics.js集合来制作炫酷的网格动画。
你可以通过nmp或bower来安装该网格瀑布流插件。
npm install minigrid
bower install minigrid
使用时需要引入minigrid.js文件。
<script src="js/minigrid.js"></script>
HTML结构
该网格瀑布流的HTML结构使用嵌套<div>的HTML结构。
<div class="grid">
<div class="grid-item"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
<div class="grid-item"></div>
</div>
CSS样式
你需要为这个网格瀑布流布局设置一些基本样式。包裹容器div.grid建议设置为相对定位方式。
.grid {
position: relative;
}
然后为网格项设置决定定位方式。
.grid-item {
position: absolute;
}
初始化插件
在页面加载之后,可以通过下面的方法来初始化该网格瀑布流插件。
minigrid('.grid', '.grid-item');
构造函数
minigrid(containerSelector, itemSelector, gutter, animate, done)
containerSelector:String。包裹容器的选择器。该参数必须指定。
itemSelector:String。网格项的选择器。该参数必须指定。
gutter:Number。网格之间的间隙。默认值为6。
animate:function。网格动画。可选项。
done:function。网格更新之后的回调函数。
animate参数:
该参数是一个带element,x,y和index的函数。
function animate(el, x, y, index) {
// 在这里可以使用你的动画库来制作动画
}
minigrid('.grid', '.grid-item', 6, animate);
响应式
要制作响应式的网格布局,你可以为window对象添加事件监听。
window.addEventListener('resize', function(){
minigrid('.grid', '.grid-item');
});
动画
你可以使用CSS3的transition来制作简单的网格动画效果。
.grid-item {
transition: .3s ease-in-out;
}
或者你可以结合Dynamics.js动画库来制作更为复杂和炫酷的网格动画效果。
function animate(item, x, y, index) {
dynamics.animate(item, {
translateX: x,
translateY: y
}, {
type: dynamics.spring,
duration: 800,
frequency: 120,
delay: 100 + index * 30
});
}
minigrid('.grid', '.grid-item', 6, animate);
点我咨询
一、用户注册、登陆,视为接受本协议的约束。
二、用户承诺遵守国家的法律法规及部门规章
三、用户承诺遵守“313组件库”的知识产权政策.
四、站内插件用于行业交流、学习。
五、用户侵犯第三人的知识产权,由该用户承担全部法律责任。
313组件库(www.yu313.cn)站内所有涉及插件及代码由会员或站主上传而来,313组件库不拥有会员上传的插件及代码的版权
313组件库作为网络服务提供者,对非法转载,盗版行为的发生不具备充分的监控能力。但是当版权拥有者提出侵权指控并出示充分的版权证明材料时,313组件库负有移除盗版和非法转载作品以及停止继续传播的义务。313组件库在满足前款条件下采取移除等相应措施后不为此向原发布人承担违约责任或其他法律责任,包括不承担因侵权指控不成立而给原发布人带来损害的赔偿责任。
如果版权拥有者发现自己作品被侵权,请及时向313组件库提出权利通知,并将姓名、电话、身份证明、权属证明、具体链接(URL)及详细侵权情况描述发往版权举报专用通道,313组件库在收到相关举报文件后,在3个工作日内移除相关涉嫌侵权的内容
QQ:515184405(周一到周五,9:30-18:00)