首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >词云弹出视频

词云弹出视频
EN

Stack Overflow用户
提问于 2017-09-05 07:53:18
回答 1查看 55关注 0票数 1

我刚从T3拿到了单词云模板。现在,我在单词cloud中添加了一个指向每个单词的youtube链接,但我希望在单击单词cloud中的单词时,视频会弹出。我应该如何修改我的代码?非常感谢。

这是我的Javascript:

代码语言:javascript
复制
<script>
var fill = d3.scale.category20();
var words = [{"text":"Worry", "url":"http://google.com/"},
         {"text":"Choices", "url":"http://bing.com/"},
       ]

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

d3.layout.cloud()
.size([width, height])
.words(words)
.padding(5)
.rotate(function() { return ~~ ((Math.random() * 6) - 3) * 30 + 8; })
.font("Impact")
.fontSize(function(d) { return d.size;})
.on("end", draw)
.start();

function draw(words) {
  d3.select("#word-cloud")
    .append("svg")
    .attr("width", width)
    .attr("height", height)
    .append("g")
    .attr("transform", "translate("+ width/2 +","+ height/2 +")")
    .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; })
    .on("click", function (d, i){
    window.open(d.url, "_blank");
    });
}
EN

回答 1

Stack Overflow用户

发布于 2017-09-05 09:01:52

我提出的方法:

  1. 创建一个模式窗口
  2. 当一个单词被点击时打开模式根据点击的单词将嵌入代码填充到模式中(我没有为你做这一部分,但应该很容易做到,因为它是要访问的数据的一部分)。

我创建了一个JSFiddle,它可以帮助您完成大部分工作,但这里还需要做一些额外的工作:

代码语言:javascript
复制
.on("click", function (d, i){
    // Dynamically populate embed

    // Open the modal
    document.getElementById('myModal').style.display = "block";
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46045236

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档