2012-05-31 2 views
1

Я делаю открытки. Когда пользователь нажимает на карту, она откроется и покажет ее содержимое. Как это сделать в CSS и javascript? Я использую перспективу и вращение, как вы можете видеть here. Если вы знаете пример, который похож на то, что я пытаюсь сделать, отправьте ссылку.CSS 3D Transform - открытие карты

Example: each color represents a different content.

+0

(http://jsfiddle.net/pYJm6/) Я не могу понять, как организовать дивы. –

+1

@ J.Morais - ОК, попробуйте абсолютное позиционирование и z-индекс. Эта ссылка (http://www.w3schools.com/Css/css_positioning.asp) имеет приятное объяснение позиционирования. – RustyTheBoyRobot

+0

[Готово.] (Http://jsfiddle.net/pYJm6/1/) Теперь, как я могу поместить желтую панель в заднюю часть красной? –

ответ

5

Вот решение, что я играл с:

  1. Создать стиль, который делает анимацию вращения.
  2. Создать стиль для конечного результата анимации (в основном так же, как ваш to раздел в стиле анимации.
  3. Создание кнопки или триггер, чтобы добавить стиль вращения к вашему <div>
  4. Установите тайм-аут в JavaScript для той же продолжительности, анимации.
  5. После того, как тайм-аут триггера, удалите стиль анимации и добавить конечный результат стиля

Here's a modification of your jsFiddle. Получение задней стороны к работе была несколько причуд. спинка должна быть ро так что его правый край соединяется с левым краем передней стороны. Затем вы должны повернуть заднюю сторону -180 градусов, чтобы она начиналась за передней страницей. Кроме того, мне пришлось переключать z-индексы, как только анимация достигла середины.

Все это трудно объяснить здесь, поэтому я посвятил an entire blog post. Я создал кучу визуальных средств, чтобы помочь понять это.

+0

Можете ли вы показать код? Основная проблема заключается в том, что я не знаю, как работать с переходами CSS ... –

+1

@ J.Morais - Я бы предпочел не просто передать вам код; Я хочу помочь вам учиться. Я нашел этот сайт (http://www.the-art-of-web.com/css/css-animation/), который имеет несколько хороших примеров. Если вы не понимаете концепции, поместите это в свой вопрос, чтобы мы могли помочь вам лучше учиться. Если вы что-то пробовали, поместите это в свой вопрос, чтобы мы могли помочь вам понять, что пошло не так. – RustyTheBoyRobot

+0

+1 для вашего комментария! – Christoph

4

Существует также более простое решение для работы; вместо переключения z-индексов с таймером вам просто нужно указать, что элементы не имеют обратной стороны (-webkit-backface-visibility: hidden), и переверните желтую карточку на 180 градусов, поэтому ее задняя часть касается красной задней стороны.

Таким образом, вам нужно только перевернуть контейнер, содержащий желтые и красные карточки, что можно сделать, добавив класс (например, class="card opened").

Вот ваш пример кода с этими изменениями: [. Это] http://jsfiddle.net/pYJm6/90/

+0

Хороший ответ; Я не знал об обратной видимости. – RustyTheBoyRobot

+0

Thnx! Мы здесь, чтобы учиться друг у друга в конце концов! – marijnvdwerf

Смежные вопросы