在d3词云中添加悬停效果
Adding hover effect in d3 word cloud
我正在使用D3云来构建词云(https://github.com/jasondavies/d3-cloud),我想添加类似于 http://www.jasondavies.com/wordcloud 的悬停效果。
下面是示例代码。完整的代码在 http://plnkr.co/edit/gNtHZ0lMRTP98mptm3W8?p=preview
var sizeScale = d3.scale.linear()
.domain([0, d3.max(frequency_list, function(d) { return d.freq} )]).range([10, 95]);
layout = d3.layout.cloud().size([w, h])
.words(frequency_list)
.padding(5)
.rotate(function() { return ~~(Math.random() * 2) * 90; })
.font("Impact")
.fontSize(function(d) { return sizeScale(d.freq); })
.on("end",draw)
.start();
}
function draw(words) {
var fill = d3.scale.category20();
d3.select(container).remove();
d3.select("body").append(container)
.attr("width", w)
.attr("height", h)
.append("g")
.attr("transform", "translate(" + [w/2, h/2] + ")")
.selectAll("text")
.data(words)
.enter().append("text")
.transition()
.duration(function(d) { return d.time} )
.attr('opacity', 1)
.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 "rotate(" + d.rotate + ")";
})
.attr("transform", function(d) {
return "translate(" + [d.x, d.y] + ")rotate(" + d.rotate + ")";
})
.text(function(d) { return d.text; });
}
在你链接到的页面上,他正在使用一个:hover
伪类。
<style>
text:hover { opacity: .7 !important; }
</style>
在此处更新了代码。
相关文章:
- 添加一个setTimeout方法会使jQuery悬停方法忽略setTimeout方法中的函数
- 将鼠标悬停在Angular JS中的一个元素上,并将Class添加到另一个元素中
- jQuery在悬停时只添加一个类
- 添加:在悬停其他elem时,将悬停状态添加到不同elem
- 将href链接添加到通过js鼠标悬停显示的图像
- IMG悬停添加样式
- CSS 在悬停时使图像变暗 - 在其周围添加一个 href
- 如何添加效果,以便将鼠标悬停在 SVG 元素上使其变大
- 将鼠标悬停在一个元素上,可以将类添加到另一个元素中
- hover添加类-或子类:悬停以影响父类
- 使用JQuery添加css属性悬停
- 悬停添加类在Chrome上出现故障,但在Firefox上工作正常
- 使用Javascript向鼠标悬停添加延迟
- 为鼠标悬停添加淡入淡出效果
- 当我在智能手机上显示时,将悬停添加到我的页面
- 如何在angularjs中为元素的悬停添加延迟?
- 如何为jquery鼠标悬停添加延迟
- JSF将悬停添加到面板中
- PHP页面-将弹出/悬停添加到调查邀请中
- 将鼠标悬停添加到当前导航栏