Я анимирую объекты, используя массивы в моем селекторе, которые я по какой-то причине застрял в другом ТАКОМ посте, который я сделал .
Как я могу остановить другие анимации, которыебыли начаты с произвольных значений массива?Например: $({ x: 0 }).animate({
Например:
$({ x: 0 }).animate({
x: 500
}, {
easing: 'linear',
duration: 15000,
step: function(now, fx) {
// $(this).stop();
var current_styles = $(selector).attr('style'),
current_styles = string = current_styles.split(" ");
var x = parseFloat(current_styles[1].replace('px', '').replace(';', ''));
if ('x' === fx.prop) {
x = now;
}
$(selector).attr({ style: 'margin-left: ' + x + 'px;' });
},
complete: function() {
//
}
});
HTML:
<div class="row row_1"><button data-id="1">GO</button><div class="box" style="margin-left: 0;"></div></div>
<div class="row row_2"><button data-id="2">GO</button><div class="box" style="margin-left: 0;"></div></div>
<div class="row row_3"><button data-id="3">GO</button><div class="box" style="margin-left: 0;"></div></div>
<div class="row row_4"><button data-id="4">GO</button><div class="box" style="margin-left: 0;"></div></div>
<div class="row row_5"><button data-id="5">GO</button><div class="box" style="margin-left: 0;"></div></div>
<div class="row row_6"><button data-id="6">GO</button><div class="box" style="margin-left: 0;"></div></div>
CSS:
.row {
background-color: green;
margin-bottom: 1px;
width: 600px;
}
.box {
background-color: red;
height: 20px;
width: 20px;
display: inline-block;
}
button {
float: left;
}
Я хочу остановить все другие анимации, когда я запускаю эту.Однако я не могу использовать $(selector).stop();
, поскольку он не работает.
JSFiddle & gif вопроса:
JSFiddle желаемых результатов (используя неправильное форматирование для моих целей):
![enter image description here](https://i.stack.imgur.com/LZHIs.gif)
Выможно остановить анимацию из step()
, используя $(this).stop();
, но это останавливает только ту анимацию, в которой вы находитесь.
В принципе, мне нужно иметь возможность остановить все другие анимации изатем продолжите анимацию, которая только что началась.Сам JS работает точно так, как задумано, мне просто нужно остановить старые анимации на их дорожках, когда запускается новая.
Мне не ясно элегантный и простой способ сделать это при использовании:
$({ x: 0 }).animate({
Спасибо, что нашли время рассмотреть мой вопрос