Мне нужен div, чтобы выскочить влево от экрана, и когда ширина сделана, он должен перезапустить. например, как его бег по кругу бесконечно.
Мне удалось найти это после поиска stackoverflow.
jQuery(".slide-inner").animate({left: -9913}, 80000, 'linear');
9913 - текущая ширина моего div в px. прямо сейчас он просто заканчивает ширину 9913, а затем завершает анимацию, ей нужно начинать заново, не показывая пробел, например, когда он попадает в последний пиксель в 9913 году, он должен начинаться с 1px снова и снова.
Мой html:
<div class="slide-inner">
<div class="one ani"></div>
<div class="two ani"></div>
<div class="three ani"></div>
<div class="four ani"></div>
<div class="five ani"></div>
<div class="six ani"></div>
</div>
Игнорируйте элементы внутри.slide-inner. Это просто абсолютные позиции divs, которые я использую с css3, чтобы осветить слайдер в ключевых точках.
РЕДАКТИРОВАТЬ:
var animate = function() {
$(".slide-inner").animate({left: -9913}, 80000, 'linear', function() {
$(this).css('left', 1);
animate();
});
}
animate();
Проблема с приведенным выше кодом остается слева, 1) должен быть отзывчивым, поэтому я не могу положить туда -1920, а затем в браузере изменить размер не будет работать так, как должно быть?
Похоже, что вам нужен обратный вызов для animate()
сочетании с функцией, которая выполняет анимацию, то есть рекурсивную функцию.
var animate = function() {
$(".slide-inner").animate({left: -9913}, 80000, 'linear', function() {
$(this).css('left', 1);
animate();
});
}
animate();
Я собрал действительно основную скрипку, чтобы продемонстрировать эту технику: http://jsfiddle.net/6mfCx/
Один из способов добиться этого - использовать background-image
& background-repeat:repeat-x;
для вашего div. Затем вы можете анимировать свойство background-position
div и получить желаемый эффект.
Предположим, что ваша ширина div равна 1920px, затем анимация из background-position:0px 0px
в background-position:-1920px 0px;
,
function animate() {
$(".slide-inner").animate({'background-position':'0px -1920px'}, 80000, 'linear', function() {
$(this).css('background-position','0px 0px');
animate();
});
}
animate();