Мне нужно повернуть значок влево. У меня есть пример с правой стороны, и это работает хорошо, но мне нужно и с левой стороны.
Проверьте это ->
https://codepen.io/HektorW/pen/eJMMaR
Это пример кода ->
.arrow {
cursor: pointer;
height: 120px;
left: 50%;
position: absolute;
top: 50%;
transform: translateX(-50%) translateY(-50%);
transition: transform 0.1s;
width: 80px;
}
.arrow-top, .arrow-bottom {
background-color: #666;
height: 4px;
left: -5px;
position: absolute;
top: 50%;
width: 100%;
}
.arrow-top:after, .arrow-bottom:after {
background-color: #fff;
content: '';
height: 100%;
position: absolute;
top: 0;
transition: all 0.15s;
}
.arrow-top {
transform: rotate(45deg);
transform-origin: bottom right;
}
.arrow-top:after {
left: 100%;
right: 0;
transition-delay: 0s;
}
.arrow-bottom {
transform: rotate(-45deg);
transform-origin: top right;
}
.arrow-bottom:after {
left: 0;
right: 100%;
transition-delay: 0.15s;
}
.arrow:hover .arrow-top:after {
left: 0;
transition-delay: 0.15s;
}
.arrow:hover .arrow-bottom:after {
right: 0;
transition-delay: 0s;
}
.arrow:active {
transform: translateX(-50%) translateY(-50%) scale(0.9);
}
Что я пытаюсь ->>>
.arrow {
cursor: pointer;
height: 120px;
left: 50%;
position: absolute;
top: 50%;
transform: translateX(-50%) translateY(-50%) rotate(180deg); ADD ROTATE
transition: transform 0.1s;
width: 80px;
}
Я добавил поворот (180 градусов), но это не рабочее свойство, потому что при щелчке вся стрелка поворачивается ко мне.
Мне нужна стрелка вверху и внизу, чтобы изменить
Я также пытаюсь установить
преобразование-происхождение: вверху слева;
Вставленное преобразование-происхождение: вверху справа;
но и не точный угол стрелки.
Редактировать:
Также попробуйте не менять анимацию....
Это то, что вы хотели сделать?
Да, верно. Просто добавьте код, чтобы утвердить вопрос.
Вам также нужно добавить вращение в класс :active
:
&:active {
transform: translateX(-50%) translateY(-50%) scale(0.9) rotate(180deg);
}
Таким образом, ротация продолжает действовать.
Пример: КодПен
Вы можете внести небольшие изменения, чтобы стрелка имела анимацию в правильном направлении.
Вам нужно поменять местами transform-origin
и transition-delay
переключение между ними даст вам стрелку с похожей анимацией с правильным исходным положением и правильно отформатирует стрелку.
body {
background-color: #111;
}
.arrowleft {
cursor: pointer;
height: 120px;
left: 50%;
position: absolute;
top: 50%;
transform: translateX(-50%) translateY(-50%);
transition: transform .1s;
width: 80px;
$transition-time: .15s;
&-top,
&-bottom {
background-color: #666;
height: 4px;
left: -5px;
position: absolute;
top: 50%;
width: 100%;
&:after {
background-color: #fff;
content: '';
height: 100%;
position: absolute;
top: 0;
transition: all $transition-time;
}
}
&-top {
transform: rotate(45deg);
transform-origin: top left;
&:after {
left: 100%;
right: 0;
transition-delay: $transition-time;
}
}
&-bottom {
transform: rotate(-45deg);
transform-origin: bottom left;
&:after {
left: 0;
right: 100%;
transition-delay: 0s;
}
}
&:hover & {
&-top:after {
left: 0;
transition-delay: 0s;
}
&-bottom:after {
right: 0;
transition-delay: $transition-time;
}
}
&:active {
transform: translateX(-50%) translateY(-50%) scale(0.9);
}
}
Чтобы решить проблему с возвратом, необходимо также добавить
rotate(180deg)
к классу:active
: codepen.io/moaaz_bs/pen/vYpNzgK