Ich erstelle ein Additions- und Subtraktionsspiel, bei dem eine Summe zufällig generiert und am oberen Rand des Containers angezeigt wird. Zahlen animieren dann von unten nach oben und die Idee ist, auf die richtige zu klicken.Überlappende Elemente während der Animation verhindern
Den Zahlen wird am Anfang eine zufällige "x" Position gegeben und dann mit der gleichen Geschwindigkeit nach oben animiert.
Das Problem, das ich habe ist, dass wenn das Programm läuft die Elemente manchmal überlappen, weil sie eine ähnliche "x" -Position am Anfang gegeben werden.
Ich muss dem Programm mitteilen, dass es nicht die gleiche "x" -Position geben soll, bis das Element, das es verwendet, weit genug oben auf dem Bildschirm ist, damit sie sich nicht überlappen.
Das Problem ist am schlimmsten, wenn das Spiel beginnt. Hier
ist der entsprechende Code ...
var currentMoving = [];
function moveRandom(id) {
// Mark this one as animating
currentMoving.push(id);
var cPos = $('#container').offset();
var cHeight = $('#container').height();
var cWidth = $('#container').width();
var bWidth = $('#' + id).width();
var bHeight = $('#' + id).css('top', '395px').fadeIn(100).animate({
'top': '-55px'
}, AnimationSpeed,'linear').fadeOut();
maxWidth = cPos.left + cWidth - bWidth;
minWidth = cPos.left;
newWidth = randomFromTo(minWidth, maxWidth);
$('#' + id).css({
left: newWidth
}).fadeIn(100, function() {
setTimeout(function() {
$('#' + id).fadeOut(10);
// Mark this as no longer animating
var ix = $.inArray(id, currentMoving);
if (ix !== -1) {
currentMoving.splice(ix, 1);
}
window.cont++;
}, 100);
});
}
Hier ist eine Geige - http://jsfiddle.net/pUwKb/68/
Es ist immer noch passiert, @DhruvPathak – sMilbz
@sMilbz sehe meine Bearbeitung. – DhruvPathak
Das sieht gut aus - Genau das, was ich wollte. Das einzige Problem ist, dass manchmal, wenn Sie genau hinschauen, Sie sehen können, dass es Zahlen über anderen gibt @DhruvPathak – sMilbz