可我知道我可以衡量我的SVG尺寸的寬度和長度?從那裏,我想限制和限制所有圖像元素只能在SVG內移動。設置SVG邊界
我的SVG的名字是「主」,如何設置彈跳區域,這樣的圖像時,到達側它不會從該地區移出?
目前,如果我設置更多的圖像出現在SVG,不知它會搬出SVG的。有沒有辦法檢查它?
<!-- ******************** Animation ******************** -->
$(window).load(function(){
$(document).ready(function(e) {
var num = 0;
var interval;
$('#add').click(function(e) {
$('#box').append('<div class="predator" id="predator'+ num + '"><img src="Pictures/PondSpecies/anchovies.png"></div>');
$('#predator'+num).css({
left: randomRange(500,150),
top: randomRange(400,150)
});
if (interval)
clearInterval(interval);
interval = setInterval (function() {
for (var i=0; i<num; i++) {
$('#predator'+i).animate ({
left: '+=' + randomRange(-6,7),
top: '+=' + randomRange(-6,7)
}, 100);
}
}, 100);
num++;
});
$('#remove').click(function(e) {
num--;
$('#predator' + num).remove();
if (num == 0 && interval)
clearInterval(interval);
});
});
/* FUNCTIONS */
function randomRange(min, max) {
return Math.random() * (max-min) + min;
}
});
<!-- ******************** Animation ******************** -->
EDITED ::
我試圖把在這3次檢查,但不知何故,它不工作,檢查......
function outOfBounds(point, boundary) {
return point.y > boundary.top
|| point.y < boundary.bottom + 200
|| point.x < boundary.getLeftBoundAt(point.y)+500
|| point.x > boundary.getRightBoundAt(point.y)+500;
}
function getLeftBoundAt(y) {
return this.slope * y + this.base + 300;
}
function getTopBoundAt(x) {
var segment = this.topSegmentAt(x);
return segment.origin.y + segment.slope * (x - segment.origin.x);
}
你確定你正在使用SVG動畫嗎?你提到的代碼只是CSS動畫使用jQuery方法'.animate()'... – balexandre