【发布时间】:2013-12-05 19:07:57
【问题描述】:
这是对question I asked a few days ago 的跟进。
在我的图表上,我希望原始图标在单击时具有动画效果,并且我还希望说明性文字淡入视图。我已经使用 InkScape 制作了文本并将其链接到代码中(就像其他图标一样)。
var coal = svg.append("svg:image")
.attr("xlink:href", "nouns/coal.svg")
.attr("width", 35)
.attr("height", 35)
.attr("x", 10)
.attr("y", 30)
.on("click", function() {
d3.select(this).transition()
.attr("x", function() {return d3.select(this).attr("x") == 10 ? 80 : 10; })
.attr("y", function() {return d3.select(this).attr("y") == 30 ? 150 : 30; })
.attr("width", function() {return d3.select(this).attr("width") == 35 ? 100 : 35; })
.attr("height", function() {return d3.select(this).attr("height") == 35 ? 100 : 35; })
.duration(750);
d3.select(".coaltext").transition()
.attr("opacity", function() {return d3.select(".coaltext").attr("opacity") == 0 ? 100 : 0 })
});
svg.append("g")
.append("svg:image")
.attr("xlink:href", "testtext.svg")
.attr("id", "coaltext")
.attr("height", 200)
.attr("width", 200)
.attr("y", 170)
.attr("x", 400)
.attr("opacity", 0);
只有其他奇怪的事情是我收到以下错误消息: event.returnValue 已弃用。请改用标准 event.preventDefault()。 --jquery.min.js:2
这很奇怪,因为我没有将任何 jquery 库加载到我的脚本中。嗯。
【问题讨论】:
-
你有什么问题?如果我理解正确,除了警告之外的一切都很好?
-
我也经常看到这个警告并且习惯于忽略它。我怀疑它是由某些 Firefox 插件引起的。
-
@LarsKotthoff 对不起,也许我不清楚。 'd3.select(".coaltext").transition() .attr("opacity", function() {return d3.select(".coaltext").attr("opacity")' 行不会导致所需的效果(即,使 coaltext SVG 对象变得不透明)。
-
您似乎想使用
#coaltext而不是.coaltext。 -
额头一巴掌再次感谢@LarsKotthoff,我欠你一杯啤酒。
标签: javascript svg d3.js onclick transitions