我做了一些关于戳但文档似乎关于这个问题有点稀疏,一两件事情没有加起来,
我试图让一个行跟踪的动画元素,我对这样的设计是使用同样的动画变量作为该行的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的位置到最左边,因为我不会告诉添加到原始值。
我没有使用“+ =变化”的原因是,“+ =什么”打破了某些原因的代码,甚至是一个通用的数值。
最后,即使我刚刚设置的第一X1动画的价值,说500,第二个为0,只有第一个会火,第二动画被跳过。 这种效果是在这里看到过,其中线飞向远左边,然后不动 。
我敢肯定,这部分是我的jQuery和JavaScript的极其业余的理解,但我将不胜感激任何建设性的帮助。