function lancer() { var pisteH=$('#test_piste').height(); setTimeout(function(){collision();},20); $('#div_2').animate({'margin-top':'-'+parseInt(pisteH)},3000); } function collision() { var div1Pos=$('#div_2').findPos(), div2Pos=$('#div_1').findPos(); if(div_1.y>=div2.y && div_1.x==div_2.x) { $('#div_2').animate({'margin-top':'-30'}); } setTimeout(function(){collision()},20); }
RECUP POSITION Calcul Position à Atteindre Contact_Y = Div_1.PosY + Div_1.Hauteur Calcul Position Suivante New_Y Div_2.PosY + IncrementY TEST de COLLISION =============== SI New_Y INFERIEUR à Contact_Y ALORS Place Div_2 en Contact_Y Appel Fonction Deplace Div_1 SINON Place Div_2 en New_Y Relance la Fonction FIN SIil va de soit que seul ton cas de figure est géré ici...
function lancer() { var pisteH=$('#test_piste').height(); setTimeout(function(){collision();},20); $('#div_2').animate({'margin-top':'-'+parseInt(pisteH)},3000); } function collision() { var div1Pos=$('#div_2').findPos(), div2Pos=$('#div_1').findPos(); if(div_1.y==div2.y) { $('#div_2').animate({'margin-top':'-30'}); } setTimeout(function(){collision()},20); }
function lancer(){ var pisteH = $('#test_piste').height(); $('#div_2').animate({ 'margin-top':'-'+parseInt(pisteH)}, 3000, function(){ // ICI la fonction appelée en fin d'animate $('#div_2').animate({'margin-top':'-30'}); }); }
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionfunction collision(){ var div1Pos=$('#div_2').findPos(), div2Pos=$('#div_1').findPos();ces 2 variables ne sont pas ulisées ????
if(div_1.y>=div2.y && div_1.x==div_2.x)d'où sort div2.y
function collision(){ var div1Pos=$('#div_2').findPos(), div2Pos=$('#div_1').findPos();
if(div1Pos.y>=div2Pos.y && div1Pos.x==div2Pos.x)
/* *Fonction qui reourne les coordonnées d'un élément */ jQuery.fn.extend({ findPos : function() { obj = jQuery(this).get(0); var curleft = obj.offsetLeft || 0; var curtop = obj.offsetTop || 0; while (obj = obj.offsetParent) { curleft += obj.offsetLeft curtop += obj.offsetTop } return {x:curleft,y:curtop}; } });