Safari 12 css animations not working well
up vote
4
down vote
favorite
I'm trying to animate a list of elements to slide in one after the other when rendered into the page.
Everything works well in Chrome and Firefox, even in Safari 11 work well, but safari 12 is not doing the animation well.
As shown in the following image, all items should be aligned to the top when the animation is completed, but for some reason only in Safari 12, the items are randomly rendered. In addition to that, the mouse over on the button is off.
You can take a look at the problem here: https://codepen.io/crysfel/pen/GwoQxE (Make sure to open the link with safari 12)
I think the css is pretty standard:
@keyframes slideIn
from
opacity: 0;
transform: translateY(60px);
to
opacity: 1;
transform: translateY(0);
.slide-in
opacity:0;
transform: translateY(60px);
animation: slideIn ease 1;
animation-fill-mode: forwards;
animation-duration: 175ms;
And a simple javascript to animate the items one after the other:
function animateIn()
$('ul li').each(function(index)
$(this).removeClass('slide-in');
setTimeout(() =>
$(this).addClass('slide-in');
, 50 * index)
)
$(() =>
animateIn();
$('#show').click(function()
animateIn();
);
);
javascript html css css-animations
add a comment |
up vote
4
down vote
favorite
I'm trying to animate a list of elements to slide in one after the other when rendered into the page.
Everything works well in Chrome and Firefox, even in Safari 11 work well, but safari 12 is not doing the animation well.
As shown in the following image, all items should be aligned to the top when the animation is completed, but for some reason only in Safari 12, the items are randomly rendered. In addition to that, the mouse over on the button is off.
You can take a look at the problem here: https://codepen.io/crysfel/pen/GwoQxE (Make sure to open the link with safari 12)
I think the css is pretty standard:
@keyframes slideIn
from
opacity: 0;
transform: translateY(60px);
to
opacity: 1;
transform: translateY(0);
.slide-in
opacity:0;
transform: translateY(60px);
animation: slideIn ease 1;
animation-fill-mode: forwards;
animation-duration: 175ms;
And a simple javascript to animate the items one after the other:
function animateIn()
$('ul li').each(function(index)
$(this).removeClass('slide-in');
setTimeout(() =>
$(this).addClass('slide-in');
, 50 * index)
)
$(() =>
animateIn();
$('#show').click(function()
animateIn();
);
);
javascript html css css-animations
add a comment |
up vote
4
down vote
favorite
up vote
4
down vote
favorite
I'm trying to animate a list of elements to slide in one after the other when rendered into the page.
Everything works well in Chrome and Firefox, even in Safari 11 work well, but safari 12 is not doing the animation well.
As shown in the following image, all items should be aligned to the top when the animation is completed, but for some reason only in Safari 12, the items are randomly rendered. In addition to that, the mouse over on the button is off.
You can take a look at the problem here: https://codepen.io/crysfel/pen/GwoQxE (Make sure to open the link with safari 12)
I think the css is pretty standard:
@keyframes slideIn
from
opacity: 0;
transform: translateY(60px);
to
opacity: 1;
transform: translateY(0);
.slide-in
opacity:0;
transform: translateY(60px);
animation: slideIn ease 1;
animation-fill-mode: forwards;
animation-duration: 175ms;
And a simple javascript to animate the items one after the other:
function animateIn()
$('ul li').each(function(index)
$(this).removeClass('slide-in');
setTimeout(() =>
$(this).addClass('slide-in');
, 50 * index)
)
$(() =>
animateIn();
$('#show').click(function()
animateIn();
);
);
javascript html css css-animations
I'm trying to animate a list of elements to slide in one after the other when rendered into the page.
Everything works well in Chrome and Firefox, even in Safari 11 work well, but safari 12 is not doing the animation well.
As shown in the following image, all items should be aligned to the top when the animation is completed, but for some reason only in Safari 12, the items are randomly rendered. In addition to that, the mouse over on the button is off.
You can take a look at the problem here: https://codepen.io/crysfel/pen/GwoQxE (Make sure to open the link with safari 12)
I think the css is pretty standard:
@keyframes slideIn
from
opacity: 0;
transform: translateY(60px);
to
opacity: 1;
transform: translateY(0);
.slide-in
opacity:0;
transform: translateY(60px);
animation: slideIn ease 1;
animation-fill-mode: forwards;
animation-duration: 175ms;
And a simple javascript to animate the items one after the other:
function animateIn()
$('ul li').each(function(index)
$(this).removeClass('slide-in');
setTimeout(() =>
$(this).addClass('slide-in');
, 50 * index)
)
$(() =>
animateIn();
$('#show').click(function()
animateIn();
);
);
javascript html css css-animations
javascript html css css-animations
asked Nov 8 at 22:51
Crysfel
3,75111828
3,75111828
add a comment |
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
You probably need to add a prefix to keyframes and animation for safari. Use something like this:
@keyframes slideIn
from
opacity: 0;
transform: translateY(60px);
to
opacity: 1;
transform: translateY(0);
@-webkit-keyframes slideIn
from
opacity: 0;
-webkit-transform: translateY(60px);
to
opacity: 1;
-webkit-transform: translateY(0);
.slide-in
opacity:0;
transform: translateY(60px);
-webkit-transform: translateY(60px);
animation: slideIn ease 1;
-webskit-animation: slideIn ease 1;
animation-fill-mode: forwards;
-webkit-animation-fill-mode: forwards;
animation-duration: 175ms;
-webkit-animation-duration: 175ms;
A helpful tool to use is shouldiprefix.com
Thanks! But Safari 12 already supports all the css above, the problem is something else :(
– Crysfel
Nov 9 at 19:16
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
You probably need to add a prefix to keyframes and animation for safari. Use something like this:
@keyframes slideIn
from
opacity: 0;
transform: translateY(60px);
to
opacity: 1;
transform: translateY(0);
@-webkit-keyframes slideIn
from
opacity: 0;
-webkit-transform: translateY(60px);
to
opacity: 1;
-webkit-transform: translateY(0);
.slide-in
opacity:0;
transform: translateY(60px);
-webkit-transform: translateY(60px);
animation: slideIn ease 1;
-webskit-animation: slideIn ease 1;
animation-fill-mode: forwards;
-webkit-animation-fill-mode: forwards;
animation-duration: 175ms;
-webkit-animation-duration: 175ms;
A helpful tool to use is shouldiprefix.com
Thanks! But Safari 12 already supports all the css above, the problem is something else :(
– Crysfel
Nov 9 at 19:16
add a comment |
up vote
0
down vote
You probably need to add a prefix to keyframes and animation for safari. Use something like this:
@keyframes slideIn
from
opacity: 0;
transform: translateY(60px);
to
opacity: 1;
transform: translateY(0);
@-webkit-keyframes slideIn
from
opacity: 0;
-webkit-transform: translateY(60px);
to
opacity: 1;
-webkit-transform: translateY(0);
.slide-in
opacity:0;
transform: translateY(60px);
-webkit-transform: translateY(60px);
animation: slideIn ease 1;
-webskit-animation: slideIn ease 1;
animation-fill-mode: forwards;
-webkit-animation-fill-mode: forwards;
animation-duration: 175ms;
-webkit-animation-duration: 175ms;
A helpful tool to use is shouldiprefix.com
Thanks! But Safari 12 already supports all the css above, the problem is something else :(
– Crysfel
Nov 9 at 19:16
add a comment |
up vote
0
down vote
up vote
0
down vote
You probably need to add a prefix to keyframes and animation for safari. Use something like this:
@keyframes slideIn
from
opacity: 0;
transform: translateY(60px);
to
opacity: 1;
transform: translateY(0);
@-webkit-keyframes slideIn
from
opacity: 0;
-webkit-transform: translateY(60px);
to
opacity: 1;
-webkit-transform: translateY(0);
.slide-in
opacity:0;
transform: translateY(60px);
-webkit-transform: translateY(60px);
animation: slideIn ease 1;
-webskit-animation: slideIn ease 1;
animation-fill-mode: forwards;
-webkit-animation-fill-mode: forwards;
animation-duration: 175ms;
-webkit-animation-duration: 175ms;
A helpful tool to use is shouldiprefix.com
You probably need to add a prefix to keyframes and animation for safari. Use something like this:
@keyframes slideIn
from
opacity: 0;
transform: translateY(60px);
to
opacity: 1;
transform: translateY(0);
@-webkit-keyframes slideIn
from
opacity: 0;
-webkit-transform: translateY(60px);
to
opacity: 1;
-webkit-transform: translateY(0);
.slide-in
opacity:0;
transform: translateY(60px);
-webkit-transform: translateY(60px);
animation: slideIn ease 1;
-webskit-animation: slideIn ease 1;
animation-fill-mode: forwards;
-webkit-animation-fill-mode: forwards;
animation-duration: 175ms;
-webkit-animation-duration: 175ms;
A helpful tool to use is shouldiprefix.com
answered Nov 9 at 3:53
Chase Martin
114
114
Thanks! But Safari 12 already supports all the css above, the problem is something else :(
– Crysfel
Nov 9 at 19:16
add a comment |
Thanks! But Safari 12 already supports all the css above, the problem is something else :(
– Crysfel
Nov 9 at 19:16
Thanks! But Safari 12 already supports all the css above, the problem is something else :(
– Crysfel
Nov 9 at 19:16
Thanks! But Safari 12 already supports all the css above, the problem is something else :(
– Crysfel
Nov 9 at 19:16
add a comment |
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53217365%2fsafari-12-css-animations-not-working-well%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown