#javascript #html #css
#javascript #HTML #css
Вопрос:
Я пытаюсь создать анимацию CSS, в которой карточка открывается не с одной, а с двух сторон. Итак, есть центральная часть и две боковые «заслонки». Оба начнут сворачиваться над центральной частью.
Я знаю, что вы можете выполнить наведение курсора CSS, при котором, если я пройдусь по нему, откроется одна сторона. В этот момент у вас, например, открыта левая сторона, а правая сторона все еще находится поверх средней части. Возможно ли каким-либо образом выполнить другую анимацию наведения, чтобы также открывалась правая сторона и была видна вся карта?
Другой способ, которым я могу увидеть, как это работает, заключается в том, что я нажимаю на заднюю часть левой створки, она открывается, а затем я нажимаю на правую створку, чтобы открыть ее. Но я предполагаю, что это должно быть сделано на Javascript?
Комментарии:
1. С какого кода вы начали? Если вы можете написать свой HTML таким образом, чтобы теги для сторон были либо вложены в центр, либо шли после центра, тогда вы должны быть в состоянии написать правила CSS, которые нацелены на стороны при наведении курсора мыши на центр.
2. Если я правильно понял желаемый регистр, когда пользователь нажимает на главный объект, вы должны запустить .show (анимировать) для левого и правого, 2 раза.
3. Возможно ли это? ДА. Как? Хороший вопрос! Существуют различные подходы. Что вы уже пробовали?
4. @IvanRubinson я пробовал с hoover. Я могу получить это так, как будто я открываю книгу или карточку, поэтому открывается левая сторона. Часть, которую мне нужно попробовать сейчас, — это открыть обе стороны одновременно, или я должен щелкнуть 2 раза, чтобы открыть одну сторону за раз.
5. Покажите нам свой код @ray55nl
Ответ №1:
Я полагаю, вы ищете что-то подобное, вы можете настроить код отсюда, чтобы получить желаемые результаты.
* { margin: 0; padding: 0; }
.content {
background-color: aquamarine;
width: 150px;
height: 220px;
margin: 50px auto 0 auto;
perspective: 2000px;
cursor: pointer;
}
.left, .right {
position: absolute;
width: inherit;
height: inherit;
background-color: aqua;
}
.left {
transform-origin: left;
transition: 1.5s;
}
.right {
transform-origin: right;
transition: .5s;
}
.content:hover .left {
transform: rotateY(-125deg);
transition: .5s;
}
.content:hover .right {
transform: rotateY(125deg);
transition: 1.5s;
}
<div class="content">
<div class="right"></div>
<div class="left"></div>
</div>
Ответ №2:
Как я и представлял, вы запускаете als 1. Затем вы нажимаете на нее, и стороны раскрываются каждая в одну сторону, и получается что-то вроде 2. мне нравится видеть, как вы открываете книгу, но не только с одной стороны, а с обеих
Ответ №3:
@Vektor
Это было именно то, что я искал, спасибо!
Мой конечный результат:
* {
margin: 0;
padding: 0;
}
.container {
position: relative;
background: url(achtergrond omtrek.png);
width: 1850px;
height: 929px;
margin-left: auto;
margin-right: auto;
}
.content {
position: absolute;
left: 35%;
background: url(center.png);
width: 563px;
height: 825px;
margin: 50px auto 0 auto;
perspective: 2000px;
cursor: pointer;
}
.left,
.right {
position: absolute;
width: 531px;
height: 721px;
top: 5%;
vertical-align: middle;
background-color: aqua;
}
.left {
transform-origin: left;
transition: 1.5s;
}
.right {
transform-origin: right;
margin-left: 30px;
transition: .5s;
}
.content:hover .left {
transform: rotateY(-180deg);
background: url(left.png);
transition: .5s;
}
.content:hover .right {
transform: rotateY(180deg);
background: url(right.png);
transition: 1.5s;
}
Комментарии:
1. Это здорово, и я был рад помочь, вы можете сделать еще один шаг вперед, добавив фон для флопа, если это необходимо, конечно 🙂