Как установить ширину во время ее увеличения? - PullRequest
0 голосов
/ 04 апреля 2011

Я пытаюсь использовать следующие коды для создания непрерывной анимации

var running = function() {
  w = jQuery('#belt').width();
  if(w >= 940)
    jQuery('#belt').width(0);

  jQuery('#belt').animate({width: '+=235px'}, duration, 'linear');
}

jQuery(document).everyTime(duration, running);

Но это не работает, ширина не сбрасывается, но постоянно увеличивается, я написал неправильно?

Ответы [ 2 ]

1 голос
/ 04 апреля 2011

Вы можете просто использовать параметр complete для jQuery#animate(), чтобы определить функцию, которая должна выполняться после завершения анимации.Добавьте немного рекурсии и т. Д .:

jQuery.fn.continuousAnimation = function() {
  var $this = this;
  return $this.animate({ 'width': '+=235px' }, 400, 'linear', function() {
    $this.width(0).continuousAnimation();
  });
};

jQuery('#belt').continuousAnimation();

Демо: http://jsfiddle.net/mathias/dRpgv/

0 голосов
/ 04 апреля 2011

каково значение duration ??

лучше использовать

setInterval (function () { // обновить список}, 5000)

где вторым параметром является количество миллисекунд.

Примечание к каждому времени

Если вы действительно хотите использовать everyTime, вам нужно сделать свой первый параметр строкой, а именно:

$ (документ) .everyTime ( "5S", function (i) {}, 0);

нет необходимости использовать «линейный» если ваша анимация внезапно останавливается, проверьте duration, увеличьте время анимации или используйте slow

.

JQuery ( '# ремень') анимация ({ширины: '+ = 235px'}, 'slow');

...