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()
。