#css #clip-path
Вопрос:
У меня есть кнопка на css:
button {
background: #FB5D5D;
width: 350px;
height: 54px;
border-radius: 4px;
position: relative;
z-index: 10;
overflow: hidden;
color: white;
border: none;
transition: clip-path 3s ease, transform 3s ease, -webkit-clip-path 3s ease;
}
button:after {
content: '';
width: 100%;
height: 100%;
display: block;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(-90deg, #D92121 0%, #FF6464 100%);
z-index: -1;
transition: clip-path .3s ease;
clip-path: polygon(200% 0, 0 200%, 0 0);
}
button:hover:after {
clip-path: polygon(0 0, 0 0, 0 0);
}
<button type="submit" class="w-full font-bold">Send</button>
Как я могу запустить анимацию с левой нижней стороны, но не справа? Мне нужно, чтобы при наведении курсора пользователя на кнопку анимация начиналась слева и переходила от светлого цвета к темному (светлый цвет должен быть на всей кнопке, как сейчас). Помогите, пожалуйста. Спасибо.
Ответ №1:
Вы можете сделать это, просто используя его transfomr: rotateY(0.5turn);
для поворота 90deg
и создания анимации right
.
Редактировать
измените угол наклона фона-градиента -270deg
, чтобы переместить темную сторону вправо.
button {
background: #FB5D5D;
width: 350px;
height: 54px;
border-radius: 4px;
position: relative;
z-index: 10;
overflow: hidden;
color: white;
border: none;
transition: clip-path 3s ease, transform 3s ease, -webkit-clip-path 3s ease;
}
button:after {
content: '';
width: 100%;
height: 100%;
display: block;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(-270deg, #D92121 0%, #FF6464 100%);
z-index: -1;
transition: clip-path .3s ease;
clip-path: polygon(200% 0, 0 200%, 0 0);
transform: rotateY(0.5turn);
}
button:hover:after {
clip-path: polygon(0 0, 0 0, 0 0);
}
<button type="submit" class="w-full font-bold">Send</button>
Комментарии:
1. темная сторона градиента должна быть справа, но не слева 🙂 Мне нужно повернуть только анимацию пути клипа
Ответ №2:
Вы можете использовать transform: scaleX(-1)
для переключения ::after
селектора. Вы можете изменить угол наклона 90deg
, чтобы темная сторона повернулась вправо.
button {
background: #FB5D5D;
width: 350px;
height: 54px;
border-radius: 4px;
position: relative;
z-index: 10;
overflow: hidden;
color: white;
border: none;
transition: clip-path 3s ease, transform 3s ease, -webkit-clip-path 3s ease;
}
button:after {
content: '';
width: 100%;
height: 100%;
display: block;
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(90deg, #D92121 0%, #FF6464 100%);
z-index: -1;
transition: clip-path .3s ease;
clip-path: polygon(200% 0, 0 200%, 0 0);
transform: scaleX(-1);
}
button:hover:after {
clip-path: polygon(0 0, 0 0, 0 0);
}
<button type="submit" class="w-full font-bold">Send</button>
Комментарии:
1. темная сторона градиента должна быть справа, но не слева 🙂