Похоже, есть много вопросов по этому поводу, но ни один из них не дал рабочего ответа.
У нас есть css анимация, которая анимирует многоточие, используя этот прекрасный пример. https://codepen.io/thetallweeks/pen/yybGra
Класс, который мы используем, здесь
#edit-submit.loading:after {
overflow: hidden;
display: inline-block;
vertical-align: bottom;
-webkit-animation: ellipsis steps(4,end) 00ms infinite;
animation: ellipsis steps(4,end) 900ms infinite;
content: "\2026"; /* ascii code for the ellipsis character */
width: 0px;
}
@keyframes ellipsis {
to {
width: 1.25em;
}
}
@-webkit-keyframes ellipsis {
to {
width: 1.25em;
}
}
И поскольку нам нужна эта анимация, чтобы она появлялась при обработке , мы используем после JS
$('#my-form').bind({
submit: function (e) {
var submitButton = $('button[type=submit]');
if(!submitButton.hasClass('loading')) {
e.preventDefault();
console.log('adding!');
submitButton.addClass('loading');
setTimeout(() => {
e.target.submit();
}, 4000);
}
То, что вы видите выше, позволяет анимации запускаться в соответствии с прогнозом в течение примерно 4 секунд (установленное время ожидания), а затем анимация останавливается в своих дорожках.
Есть ли Можно ли предотвратить Safari игнорировать его обычную прерогативу и разрешить эту анимацию, пока пользователь не перейдет на следующую страницу?