JQuery Animate setTimeout - PullRequest
       16

JQuery Animate setTimeout

0 голосов
/ 25 мая 2018

Как предмет, как я могу установить таймаут для ниже jQuery ??Спасибо

$(document).ready(function(){
    animateM();
});
function newPosition(){
    var h = $(window).height() - 50;
    var w = $(window).width() - 50;
    var nh = Math.floor(Math.random() * h);
    var nw = Math.floor(Math.random() * w);
    return [nh,nw];
}
function animateM(){
    var newq =  newPosition();
    $('.animateM').animate({ top: newq[0], left: newq[1] }, function(){
        animateM();
    });
};

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Попробуйте

1002 *
$(document).ready(function(){
 var newq =  newPosition();
$(".animateM").animate({left:newq[1]}, "2000")
           .animate({top:newq[0]}, "5000");
        
});
function newPosition(){
    var h = $(window).height() - 50;
    var w = $(window).width() - 50;
    var nh = Math.floor(Math.random() * h);
    var nw = Math.floor(Math.random() * w);
    return [nh,nw];
}
   
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>


<div  class="animateM"  style="background:#98bf21;height:100px;width:100px;position:absolute;"></div>
0 голосов
/ 25 мая 2018

В базовом сценарии предпочтительным кросс-браузерным способом передачи параметров в обратный вызов, выполняемый setTimeout, является использование анонимной функции в качестве первого аргумента .:

function newPosition(){
    var h = $(window).height() - 50;
    var w = $(window).width() - 50;
    var nh = Math.floor(Math.random() * h);
    var nw = Math.floor(Math.random() * w);
    return [nh,nw];
}

$(document).ready(function(){

    var newq =  newPosition();

    setTimeout(function() {
        $('.animateM').animate({
            top: newq[0],
            left: newq[1],
        });
    , 2000 ); // 2000 is duration

});
...