我正在使用D3 javascript 库来动态更改线条粗细。我想要实现的是一条粗细不断增加和粗细减小的线条。为了画一条线,我使用了以下代码:
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="http://mbostock.github.com/d3/d3.js"></script>
</head>
<body>
<div id="D3line"></div>
<script type="text/javascript">
var lineSVG = d3.select("#D3line")
.append("svg:svg")
.attr("width", 500)
.attr("height", 200);
var myLine = lineSVG.append("svg:line")
.attr("x1", 60)
.attr("y1", 60)
.attr("x2", 450)
.attr("y2", 150)
.style("stroke", "rgb(6,120,155)")
.style("stroke-opacity", 2);
</script>
</body>
</html>
然后,为了改变线条的粗细,我使用了下面的代码:
var lines = lineSVG.selectAll("line") // select all lines
function makeLinesThick()
{
lines.transition().duration(500)
.style("stroke-width", "5")
.each("end", makeLinesThin);
}
function makeLinesThin(){
lines.transition().duration(500)
.style("stroke-width", "2")
.each("end", makeLinesThick);
}
// call function to change lines
makeLinesThick()
但是,我最终无法正常运行并在我的浏览器中收到“无响应脚本”消息。我不确定在这种情况下我是否正确地构建了回调。
()
编辑:我通过删除行中的更改了我不正确的回调处理.each()
。