我正在使用 D3 Cloud构建一个单词云.以下是示例代码:
<!DOCTYPE html>
<Meta charset="utf-8">
<body>
<script src="../lib/d3/d3.js"></script>
<script src="../d3.layout.cloud.js"></script>
<script>
  var fill = d3.scale.category20();

  d3.layout.cloud().size([300,300])
      .words(["This","is","some","random","text"].map(function(d) {
        return {text: d,size: 10 + Math.random() * 90};
      }))
      .padding(5)
      .rotate(function() { return ~~(Math.random() * 2) * 90; })
      .font("Impact")
      .fontSize(function(d) { return d.size; })
      .on("end",draw)
      .start();

  function draw(words) {
    d3.select("body").append("svg")
        .attr("width",300)
        .attr("height",300)
      .append("g")
        .attr("transform","translate(150,150)")
      .selectAll("text")
        .data(words)
      .enter().append("text")
        .style("font-size",function(d) { return d.size + "px"; })
        .style("font-family","Impact")
        .style("fill",function(d,i) { return fill(i); })
        .attr("text-anchor","middle")
        .attr("transform",function(d) {
          return "translate(" + [d.x,d.y] + ")rotate(" + d.rotate + ")";
        })
        .text(function(d) { return d.text; });
  }
</script>

我想在每个单词(“This”,“is”,“some”,“random”,“text”)上创建一个超链接.所以在单词云中,当我点击每个单词时,它会转到链接.
1)如何在每个单词上运行?
2)如果您能告诉我如何将云的大小更改为800 * 300而不是300 * 300,则可以获得奖金.因为我试图改变它的大小在“d3.layout.cloud().size([300,300])”,但它没有帮助.文本开箱即用.

希望你明白我的问题

谢谢.

解决方法

要使单词可点击,您需要做的就是设置一个.(“click”,function(…){…})listener,打开一个新的选项卡.您还可以向文本添加样式,使其看起来像一个链接.这是一些代码:
var words = [{"text":"This","url":"http://google.com/"},{"text":"is","url":"http://bing.com/"},{"text":"some","url":"http://somewhere.com/"},{"text":"random","url":"http://random.org/"},{"text":"text","url":"http://text.com/"}]

for (var i = 0; i < words.length; i++) {
    words[i].size = 10 + Math.random() * 90;
}

...
d3.layout.cloud()
  ...
  .words(words)
  ...
  .start();

function draw(words) {
    ...
    d3.select("body")
      .append("svg")
      ...
      .enter()
      .append("text")
      ...
      .text(function(d) { return d.text; })
      .on("click",function (d,i){
          window.open(d.url,"_blank");
      });
}

我更改了格式,使代码更易于管理.
要更改图像的宽度和高度,您需要更改三个值:

d3.layout.cloud()
  .size([width,height])

d3.select("body")
  .append("svg")
  .attr("width",width)
  .attr("height",height)
  ...
  .attr("transform","translate("+ width/2 +","+ height/2 +")")

这些属性应该由两个变量来控制,以保持代码简单.

Here is a fiddle.

javascript – 如何在d3云中创建每个单词的链接?的更多相关文章

  1. 如何在Swift中获取文本中真实单词的数量

    参见英文答案>NumberofwordsinaSwiftStringforwordcountcalculation4个编辑:已经存在类似于此问题的问题,但它是由特定字符分隔的数字(Getno.Ofwordsinswiftforaveragecalculator).相反,这个问题是要获得文本中真实单词的数量,以各种方式分开:换行符,一些换行符,一个空格,一个空格等.我想用Swift3获取字符串中的单

  2. android – 突出显示通过EditText搜索的所有单词

    您好,我想知道如何突出显示在EditText中输入的所有单词,并将出现在TextView中此帖子与此相关HighlightTextviewUsingEditText解决方法Sayet是您的EditText,电视是TextView对象.使用以下代码:结果是:

  3. Android Tamil字体之间的英文单词

    我有一个TextView有一个巨大的文本之间,我有一个tamil字,我知道如何嵌入tamil字体在单独的文本视图.但我需要英文单词之间的tamil单词请提前感谢我在textview中的部分文字:Seasonalmessageslikewelcome()isusedinKolam.VolunteeringtodrawkolamattempleissometimesdonewhenadeVotee’s

  4. 在JavaScript中查找字符串中最长单词的三种方法(推荐)

    这篇文章主要介绍了在JavaScript中查找字符串中最长单词的三种方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  5. php – strpos用两个单词来查找

    我在stackoverflow上找到了这个例子:但是如何让它搜索两个单词.我需要这样的东西:如果$a包含单词“are”或“be”或者两者都包含echo“contains”;我试过xor和||只需单独检查两个单词并使用boolean或-运算符检查$a中是否包含其中一个或两个:请注意,由于or-operator,如果第一个已经显示$a包含’are’,则不执行第二次检查.

  6. PHP字符串/文字处理问题

    可以说我有以下句子:但是我有一个限制,那句话只允许25个字符.这可能会让我有类似的东西:然而,这句话没有任何语法意义,所以我宁愿找到我们可以允许的最后一个词,同时保持25个字符限制.这会给我们这样的东西:这将低于25个字符限制,但它具有更多的语法意义.即单词没有被分解,我们在保持极限的同时拥有最多可理解单词.如何编写一个将接受字符串的函数和一个char限制(如25),如果字符串超出限制,则返回具有最大字数的字符串?

  7. php – 正则表达式匹配一定长度的ALL-CAPS单词

    我有一个函数可以修复那些坚持让一切都变得更好的顽皮用户的资本化!我希望只在字符串包含3个或更多大写字母的大写单词时才调用我的函数.这可以用正则表达式完成吗?

  8. 用于计算各种语言中的单词的PHP库/类?

    是否有任何特定的字符或一组字符?我记得阅读有关在T9写作中识别日语单词有多困难的东西,但是找不到它.以下内容应正确返回使用空格或标点符号作为单词分隔符的语言的单词数:

  9. php – mysql FULLTEXT搜索多个单词

    我从来没有听过这个直接的答案,我只需要FULLTEXT搜索几个字,多个字“FirstnameLastname”但是如果我在这里输入多个单词,则无法运行查询.如果你想做精确的搜索:

  10. 正则表达式 – 提取|之间的最后一个单词|

    我有以下数据集我想提取||之间的最后一个字作为一个新的变量即我试过用我们可以用数据

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部