я пытаюсь заставить определенную анимацию кнопки работать. Я подготовил скрипку, она отлично работает на Chrome, Firefox и даже IE 11, но не на Safari.
Пробе: В Safari дочерние элементы div (волны) скрывают друг друга при наложенииво время ротации.
Может быть, вы, ребята, сейчас что-то не так, или то, что мне не хватает.
Вот код: https://codepen.io/chrislow-the-bashful/pen/RXaxeQ
В целях документации я скопируюкод в Stackoverflow, а также.
<div class='some-page-wrapper'>
<div class='row'>
<div class='column'>
<h1>A1</h1>
<button>
<div class="wave-1 a1"></div>
<div class="wave-2 a1"></div>
<span>NORMAL</span>
</button>
<h1>A2</h1>
<button>
<div class="wave-1 a2"></div>
<div class="wave-2 a2"></div>
<span>NORMAL</span>
</button>
<h1>A3</h1>
<button>
<div class="wave-1 a3"></div>
<div class="wave-2 a3"></div>
<span>NORMAL</span>
</button>
<h1>B1</h1>
<button>
<div class="wave-1 a1"></div>
<div class="wave-2 a1"></div>
<div class="wave-3 a4"></div>
<span>NORMAL</span>
</button>
</div>
<div class='column'>
<h1>A1</h1>
<button class="blue">
<div class="wave-1 a1 wave--blue"></div>
<div class="wave-2 a1 wave--blue"></div>
<span>NORMAL</span>
</button>
<h1>A2</h1>
<button class="blue">
<div class="wave-1 a2 wave--blue"></div>
<div class="wave-2 a2 wave--blue"></div>
<span>NORMAL</span>
</button>
<h1>A3</h1>
<button class="blue">
<div class="wave-1 a3 wave--blue"></div>
<div class="wave-2 a3 wave--blue"></div>
<span>NORMAL</span>
</button>
<h1>B1</h1>
<button class="blue">
<div class="wave-1 a1 wave--blue"></div>
<div class="wave-2 a1 wave--blue"></div>
<div class="wave-3 a4 wave--blue"></div>
<span>NORMAL</span>
</button>
</div>
</div>
</div>
@import url('https://fonts.googleapis.com/css?family=Fira+Sans:500&display=swap');
$btn-w: 210px;
$btn-h: 55px;
.row {
display: flex;
flex-direction: row;
flex-wrap: wrap;
width: 100%;
}
.column {
display: flex;
flex-direction: column;
flex-basis: 100%;
flex: 1;
}
h1 {
padding-left: 90px;
padding-top: 30px;
}
html {
font-size: 10px;
font-family: 'Fira Sans', sans-serif;
background-color: white;
padding: 50px;
}
.wrapper {
display: flex;
align-items: center;
justify-content: center;
height: 100vh;
width: 100%;
}
.blue {
background: #005797;
color: white;
}
.wave--blue {
background-image: linear-gradient(254deg, #3ea9ca, #06649b 52%, #0f255b) !important;
}
button {
height: $btn-h;
width: $btn-w;
border: none;
position: relative;
padding: 1rem 2rem;
text-decoration: none;
font-size: 2em;
display: block;
text-align: center;
font-family: 'Fira Sans', sans-serif;
color: #000460;
font-size: 14px;
font-weight: 500;
font-style: normal;
font-stretch: normal;
line-height: normal;
letter-spacing: 0.88px;
font-weight: bold;
letter-spacing: 1px;
overflow: hidden;
border-radius: 30px;
background: #eb6626;
@supports not (-moz-appearance:none) {
-webkit-mask-image: -webkit-radial-gradient(white, black);
}
&:hover {
cursor: pointer;
}
}
button div[class^="wave-"] {
position: absolute;
z-index: 0;
height: 200px;
width: 200px;
opacity: 0;
transition: opacity 0.5s ease-in-out;
}
button:hover div[class^="wave-"] {
opacity: .9;
}
/** STYLES **/
.a1 {
border-radius: 44% 84% 63% 74%;
}
.a2 {
border-radius: 44% 100% 63% 74% / 20% 75% 71% 73%;
}
.a3 {
border-radius: 60% 90% 90% 60%;
}
.a4 {
border-radius: 60% 90% 90% 60%;
}
button div.wave-1 {
background-blend-mode: multiply;
background-image: linear-gradient(290deg, #fccf8a, #f7af40 27%, #eb6626 63%, #e13b31);
left: 85px;
bottom: -10px;
transform: rotate(20deg);
}
button div.wave-2 {
background-image: linear-gradient(232deg, #FF5500, #f7af40 27%, #FF5500 63%, #e13b31);
top: -10px;
transform: rotate(180deg);
right: 100px;
}
button div.wave-3 {
top: -7px;
border-radius: 70% 50% 90% 61%;
width: 210px;
height: 255px;
background-image: linear-gradient(232deg, #FF5500, #f7af40 27%, #FF5500 63%, #e13b31);
transform: rotate(180deg);
}
span {
position: relative; /*Brings the text to the top;*/
}
button:hover .wave-1 {
animation: wave-1 6s infinite linear;
}
button:hover .wave-2 {
animation: wave-2 6s infinite linear;
}
button:hover .wave-3 {
animation: wave-3 10s infinite linear;
}
@keyframes wave-1 {
0% {
transform: rotate3d(0,0,1,20deg);
}
50% {
transform: rotate3d(0,0,1,200deg);
}
100% {
transform: rotate3d(0,0,1,380deg);
}
}
@keyframes wave-2 {
0% {
transform: rotate3d(0,0,1,180deg);
}
50% {
transform: rotate3d(0,0,1,0deg);
right: 110px;
}
100% {
transform: rotate3d(0,0,1,-180deg);
}
}
@keyframes wave-3 {
0% {
transform: rotate3d(0,0,1,180deg);
}
50% {
transform: rotate3d(0,0,1,0deg);
}
100% {
transform: rotate3d(0,0,1,-180deg);
}
}