js实现随机散列排布元素

github地址

web 端实现在盒子类将指定的子节点随机排列,并不重叠

使用方法

hashPosition 函数

参数 1:dom 对象

参数 2:数字时表明排列子元素宽高一样 只针对圆时一样,正方形时宽高都应该是正方形宽的根号 2 倍,参数为对象时

width: 指定子元素宽高固定

minWidth,maxWidth在子元素宽高在范围内时使用
space:指定子元素最小间隔,默认在为最大宽度的0.2倍

宽高一样的圆排列时

在这里插入图片描述

demo:

hashPosition(document.getElementById("hash-box"), 40)
子元素宽高在一定范围类

在这里插入图片描述

demo:

hashPosition(document.getElementById("hash-box1"), {
  minWidth: 20,
  maxWidth: 50,
})
方形元素排列

在这里插入图片描述

demo:

hashPosition(document.getElementById("hash-box2"), {
  width: 30,
  // 设置方向元素间的间隔 在45对角排列是元素中心点距离是30倍根号2,但width设置30时最小间距是30*0.2,这时需要手动调整间距
  space: 30 * (Math.pow(2, 0.5) - 1),
})
长方形元素排列

在这里插入图片描述

demo:

hashPosition(document.getElementById("hash-box2"), {
  width: 30,
  // 与正方形思想一直,只是width是长方形的最大边
  space: 30 * (Math.pow(2, 0.5) - 1),
})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值