我可以知道如何测量我的 SVG 尺寸的宽度和长度吗?从那里,我想限制和限制所有图像元素只能在 SVG 内移动。
我的 SVG 名称是“main”,如何设置弹跳区域,以便当图像到达一侧时它不会从该区域移出?
目前,如果我设置更多图像出现在 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 ******************** -->
编辑::
我试图进行这 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);
}