私はいくつかの突っ込みをしましたが、ドキュメントは主題に関して少しまばらに見えます、そして1つか2つのことが足し合わされていません、
アニメーション要素を追跡するための線を取得しようとしています。このための私の設計は、線のX1座標のボックス要素と同じアニメーション変数を使用することです。
Javascript(最新のjQuery、SVGプラグイン+ SVGアニメーションプラグイン)
$(function(){
var balloons = [
$("#box1"),
$("#box2"),
$("#box3")
];
var lines = [
$("#line1"),
$("#line2"),
$("#line3")
];
function act(jqObj, lineX, speed, change) {
jqObj
.animate({'left': change}, speed)
.animate({'left': -change}, speed);
lineX
.animate({svgX1: change}, speed)
.animate({sgvX1: -change}, speed, function() {
act(jqObj, lineX, speed, change);
});
};
for (i = 0; i < balloons.length; i++) {
var speed = 2000 + Math.random() * 501;
var change = 10 + Math.random() * 26;
act(balloons[i], lines[i], speed, change);
}
});
HTML / CSS
<html>
<head>
<title>Proof of Concept Page</title>
<style type="text/css">
.html .body {position: absolute;}
.box {
position: absolute;
width:100px;
height:100px;
position: absolute;
background-color:red;
}
#box1 {
margin-left:300px; margin-top:60px
}
#box2 {
margin-left:500px; margin-top:20px
}
#box3 {
margin-left:700px; margin-top:50px
}
</style>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jquery.svg.js"></script>
<script type="text/javascript" src="jquery.svganim.js"></script>
<script type="text/javascript" src="main.js"></script>
</head>
<body>
<div class="box" id="box1">Proj 1</div>
<div class="box" id="box2">Proj 2</div>
<div class="box" id="box3">Proj 3</div>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<line id="line1" x1="350" y1="160" x2="550" y2="500" style="stroke:rgb(255,0,0);stroke-width:2"/>
<line id="line2" x1="550" y1="120" x2="550" y2="500" style="stroke:rgb(255,0,0);stroke-width:2"/>
<line id="line3" x1="750" y1="150" x2="550" y2="500" style="stroke:rgb(255,0,0);stroke-width:2"/>
</svg>
</body></html>
ここにはいくつかの問題があります。まず、明らかな問題です。元の値に追加するように指示していないため、現在のコードがX1の位置を左端に設定していることです。
'+ = change'を使用していない理由は、'+ = anything'が何らかの理由でコードを壊しているためです。これは、一般的な数値であってもです。
最後に、最初のX1アニメーションの値を500に設定し、2番目を0に設定した場合でも、最初のアニメーションのみが起動され、2番目のアニメーションはスキップされます。この効果は、線が左端に飛んで移動しない場合にも見られます。
これは、jQueryとJavascriptについての私の非常に素人的な理解の一部であると確信していますが、建設的な支援をいただければ幸いです。