Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 定位多个、随机大小、绝对定位的元素,使其不';t重叠_Javascript_Css_Animation_Positioning_Interactive - Fatal编程技术网

Javascript 定位多个、随机大小、绝对定位的元素,使其不';t重叠

Javascript 定位多个、随机大小、绝对定位的元素,使其不';t重叠,javascript,css,animation,positioning,interactive,Javascript,Css,Animation,Positioning,Interactive,好的,我需要能够在页面上定位一堆随机大小的绝对定位单词,但我不希望任何元素重叠。 最终目标是拥有一个响应用户交互的流畅的词云(还记得吗?)。我真的很想从头开始构建它,以发展我对这种类型开发的理解。在这个部门的任何帮助都将不胜感激:)我不确定您是否也希望将单词随机放置在容器中,但我已经写了一个小提琴,可以做到这一点。如果愿意,您可以修改代码,将一个单词放在另一个单词的后面。我认为关键部分是检查是否发生碰撞的方法 看 编辑:请注意,这是非常简单且未优化的代码。例如,如果您要添加许多单词,那么脚本可能

好的,我需要能够在页面上定位一堆随机大小的绝对定位单词,但我不希望任何元素重叠。


最终目标是拥有一个响应用户交互的流畅的词云(还记得吗?)。我真的很想从头开始构建它,以发展我对这种类型开发的理解。在这个部门的任何帮助都将不胜感激:)

我不确定您是否也希望将单词随机放置在容器中,但我已经写了一个小提琴,可以做到这一点。如果愿意,您可以修改代码,将一个单词放在另一个单词的后面。我认为关键部分是检查是否发生碰撞的方法


编辑:请注意,这是非常简单且未优化的代码。例如,如果您要添加许多单词,那么脚本可能无法容纳容器中的所有单词,并进入一个无休止的循环。

我使用Jules的脚本添加了这一改进:对非重叠区域的搜索是有界的(否则,我相信原始脚本将循环),并且是最佳区域(重叠最小的一个)被选中


使用maxSearchIterations变量和/或整个区域的大小,这确实会产生影响。

设置字体大小,首先获取周围元素的高度/宽度,然后开始定位可能会很有用。@minikomi知道如何定位吗?我知道如何获取元素的高度和宽度。Tha这太令人印象深刻了!我的最终目标是创建一个类似这样的东西,你能帮助/修改你的答案吗?当然,你可以随心所欲地设计所有单词的样式。看看jqcloud这个东西,它似乎使用了一个螺旋函数来定位标签,从中心开始,用最大的单词。我不会发布代码,因为你可以直接获得操作此处的en源代码:jQCloud链接现在已断开:(