如何使awesomeCloud可点击

时间:2013-03-06 11:40:36

标签: cloud html5-canvas

请仔细看看这个词云,我只是想让这些词可以链接 所以任何人都可以帮忙http://indyarmy.com/awesomeCloud/

2 个答案:

答案 0 :(得分:1)

在画布中绘制Word Cloud非常简单。使其可点击是相当复杂的!

Canvas是一个“抽奖”工具。在画布上绘制一个单词后,它就变成了一个单词的图片。没有内置函数来跟踪单词在画布上的位置,更不用说单击特定单词了。

如果您的工具具有灵活性,则可以尝试使用支持点击的工具包。有很多可能性,但这些可以想到:

Canvas库: Canvas绘图库,如fabricJS,easelJS,kineticJs,paperJs(这些库可以使您的画布文字可点击和可跟踪)。您必须通过移动/旋转单词来设计自己的云。

SVG: Svg元素成为Html DOM的一部分,因此可以点击。 RaphaelJS是一个非常好的Svg库。您必须通过移动/旋转单词来设计自己的云。

Canned Cloud Apps: Tagul(http://tagul.com/blog)是一款在Flash中创建的应用,可创建可点击的字云。默认情况下,链接指向谷歌搜索,但您可以自定义每个单词链接以指向您想要的位置。

如果真的想要“自己动手”,请按照以下方式进行:

从Github(https://github.com/indyarmy/jQuery.awesomeCloud.plugin

下载awesomeCloud

在绘制每个单词时,您需要像这样跟踪它:

- 使用context.measureText(“你的单词”)来查找单词的宽度。

- 使用单词的宽度和高度创建一个边界框,并保存该边界框的位置和大小。

- 使用矩阵变换移动并将单词旋转到位,然后保存矩阵变换。

让用户点击你的云。

当用户点击您的云时,请对云中的每个字进行点击测试。要执行此操作,请使用保存的矩阵变换来取消移动和取消旋转单击的点。然后迭代每个单词的已保存边界框,查看单击的点是否在边界框内。

如果您点击了,您就会知道用户点击了哪个字词!

答案 1 :(得分:0)

试试这个叉子:

https://github.com/fguimara/jQuery.awesomeCloud.plugin

你必须改变这样的事情:

 <span data-weight="18">Google</span>

为此:

<span data-weight="18"><a href="http://google.com">Google</a></span>