Неккоректная работа спиннера в Safari
Создав спиннер при помощи анимации, проверил в браузерах Chrome/Firefox, все работает. Проверяю в Safari, анимация ведет себя по-другому. Прокручивается, но там, когда line идет по кругу, отображается не линия, а квадрат какой-то.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>HTML Document</title>
</head>
<body>
<div class="oob-timer-wrapper">
<div class="oob-timer-container">
<div class="timer-line">
</div>
<div class="timer-body">
<div class="timer-counter">
<div class="oob-timer">
</div>
</div>
</div>
</div>
</div>
</body>
</html>
.oob-timer-wrapper {
padding-left: 60px;
}
.oob-timer-container {
width: 45px;
height: 45px;
border-radius: 50%;
background-color: #fff;
display: flex;
justify-content: center;
align-items: center;
overflow: hidden;
position: relative
}
.timer-body {
width: 36px;
height: 36px;
border-radius: 50%;
background-color: #fff;
text-align: center;
overflow: hidden;
display: flex;
justify-content: center;
align-items: center;
z-index: 4
}
.timer-line {
position: absolute;
top: 0;
left: 0;
display: flex;
justify-content: center;
text-align: center;
width: 100%;
height: 100%;
animation: line 1s 121 linear forwards;
z-index: 4
}
.timer-line:after {
content: "";
position: absolute;
top: 0;
left: 0;
width: 50%;
height: 100%;
background: linear-gradient(to top, #ff8fec, #85a5ff)
}
.oob-timer-container:before {
content: "";
position: absolute;
top: 0;
left: 0;
width: 50%;
height: 100%;
z-index: 3;
background: #fff;
animation: mask_left 1s 121 steps(1, end) forwards
}
.oob-timer-container:after {
content: "";
position: absolute;
top: 0;
right: 0;
width: 50%;
height: 100%;
z-index: 3;
background: linear-gradient(to bottom, #ffc88a, #ff8fec);
animation: mask_right 1s 121 steps(1, end) forwards
}
.timer-counter {
font-family: $cp-font-family;
font-size: 14px;
display: flex;
justify-content: center;
text-align: center;
}
@keyframes line {
0% {
}
100% {
transform: rotate(360deg)
}
}
@keyframes mask_left {
0% {
visibility: visible
}
50%, 100% {
visibility: hidden
}
}
@keyframes mask_right {
0% {
visibility: hidden
}
50%, 100% {
visibility: visible
}
}
Пробовал вставлять расширения браузера -webkit-animation, расписывал все (их там 3 разных, пример на одной) animation:
animation-name: mask_left;
-webkit-animation: mask_left;
animation-duration: 1s;
-webkit-animation-duration: 1s;
animation-iteration-count: 121;
-webkit-animation-iteration-count:121;
animation-timing-function: steps(1, end);
-webkit-animation-animation-timing-function: steps(1, end);
animation-fill-mode: forwards;
-webkit-animation-fill-mode: forwards;
или так:
animation: mask_left 1s 121 steps(1, end) forwardsж
-webkit-animation: mask_left 1s 121 steps(1, end) forwards
Пробовал поменять:
@keyframes line {
0% {
}
100% {
transform: rotate(360deg)
-webkit-transform: rotate(360deg)
}
}
Пробовал еще экспериментировать с rotate: rotate3d(360deg) и расписывать процент отображения 0%, 25% и 50%, 100% И ничегоне помогло. В тупике. Прошу помочь знатоков особенности работы с Safari :(
Похожая задача была: Ошибка отображения safari [1]: https://i.stack.imgur.com/liNuE.jpg