Как посмотреть ширину элемента при анимации? - PullRequest
2 голосов
/ 03 октября 2010

Я просто анимирую объект, используя:

$("#progress").animate({width:400},2000)

Чем я также хочу просмотреть его ширину таким образом

$("#loadingpro").html(pro+"%");

pro = Math.round(procent$("#progress").width()/4);

Но когда я делаю это таким образом, он начинает задерживать весьстолько процессора, что это вообще невозможно сделать.

Есть идеи, как я могу попытаться сделать это по-другому?

1 Ответ

2 голосов
/ 03 октября 2010

Вы можете использовать setInterval() и clearInterval().Поиграйте с интервалом, чтобы получить его гладко.~ 20 микросекунд - вот что у меня сработало:

$(function() {
    var timer = setInterval(function() {
        $("#loadingpro").html(Math.round($("#progress").width()/4) + "%");
    },20);
    $("#progress").animate({width:400},2000, function() {
        clearInterval(timer);
    });
});​

jsFiddle, пример

.setInterval() - хороший выбор, поскольку вы можете остановить его с помощью clearInterval() в обратном вызове animate(), как только все ваши вычисления будут выполнены.

...