Анимированная вводная секция

Тема в разделе "Создание Сайтов", создана пользователем sodafloofy, 4 ноя 2015.

Статус темы:
Закрыта.
  1. sodafloofy

    sodafloofy Gauss

    Регистрация:
    27 дек 2013
    Сообщения:
    179
    Симпатии:
    107
    Розыгрышей:
    0
    Репутация:
    142
    [​IMG]

    Создание структуры

    Структура HTML для каждого эффекта довольно проста: section.cd-intro используется в качестве контейнера для элемента div.cd-intro-content который обертывает основной подзаголовок

    Структура для основного подзаголовка слегка отличается от одного эффекта к другому: для живого эффекта, например, мы используем тег <h1> для заголовка страницы, тег <p> как подзаголовок, и div.action-wrapper для обертывания кнопки действия:

    Код:
    <section class="cd-intro">
       <div class="cd-intro-content bouncy">
         <h1>Animated Intro Section</h1>
         <p>A collection of text effects for the intro section of your website</p>
         <div class="action-wrapper">
           <a href="#0" class="cd-btn main-action">Get started</a>
           <a href="#0" class="cd-btn">Learn More</a>
         </div>
       </div>
    </section>
    Класс .bouncy добавлен в .cd-into-content чтобы использовать для запуска анимации.

    Добавление стиля

    По умолчанию, мы прячем ввод содержимого, установив его непрозрачность до нуля, затем мы оживляем его с помощью CSS-анимации.
    Для живого эффекта, например, мы создали 3 различных анимации для <h1>, <p> и .cd-btn кнопок:

    Код:
    .cd-intro-content h1,
    .cd-intro-content p,
    .cd-intro-content .cd-btn {
      opacity: 0;
      animation-delay: 0.3s;
      animation-fill-mode: forwards;
    }
    .bouncy.cd-intro-content h1 {
      animation-name: cd-bounce-right;
    }
    .bouncy.cd-intro-content p {
      animation-name: cd-bounce-left;
    }
    .bouncy.cd-intro-content h1,
    .bouncy.cd-intro-content p {
      animation-duration: 0.6s;
    }
    .bouncy.cd-intro-content .cd-btn {
      animation-name: cd-bounce-rotate;
      animation-duration: 0.5s;
    }
    .bouncy.cd-intro-content .cd-btn.main-action {
      animation-delay: 0.4s;
    }
    @keyframes cd-bounce-right {
      0% {
      opacity: .2;
      transform: translateX(-200px);
      }
      60% {
      opacity: .7;
      transform: translateX(15px);
      }
      100% {
      opacity: 1;
      transform: translateX(0);
      }
    }
    @keyframes cd-bounce-left {
      0% {
      opacity: .2;
      transform: translateX(200px);
      }
      60% {
      opacity: .7;
      transform: translateX(-15px);
      }
      100% {
      opacity: 1;
      transform: translateX(0);
      }
    }
    @keyframes cd-bounce-rotate {
      0% {
      opacity: .2;
      transform: perspective(800px) rotateX(-80deg);
      }
      20% {
      opacity: 1;
      }
      60% {
      transform: perspective(800px) rotateX(20deg);
      }
      100% {
      opacity: 1;
      transform: perspective(800px) rotateX(0);
      }
    }
    Давайте взгялнем на видео эффект сейчас: если открыть файл video.html, вы можете увидеть, что дополнительно была выставлена div.cd-bg-video-wrapper; этот элемент используется, чтобы обернуть фоновое видео (Вы не увидите ни одного элемента "video" внутри HTML, так как он загружается с помощью j&#097;vascript - еще из раздела 'Обработка событий').

    Кроме того, мы выставили два элемента (.svg-mask и .svg-mask-mobile) внутри тегов <h1>: эти svgs используются для создания эффекта прозрачности заголовка (первая, когда ширина устройства больше чем, 768px, вторая для других устройств).
    В принципе, идея такова: мы создаем непрозрачный прямоугольный <path> элемент, а затем мы добавляем прозрачную область в форме заголовка страницы (в нашем демо, 'Видео Эффект')
    Затем svg используется в качестве слоя, чтобы покрыть всю .cd-intro-content: прозрачная область в формате svg позволяет увидеть то, что ниже его (на фоне видео).

    Вы можете создать svg маску, просто используя графический векторный редактор. Мы использовали Adobe Illustrator, где мы создали прямоугольник, а затем удалили текст, используя инструмента Pathfinder.

    Код:
    .cd-bg-video-wrapper {
      /* background cover video */
      position: absolute;
      z-index: 1;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      overflow: hidden;
      background: url(../assets/bg-img.jpg) no-repeat center center;
      background-size: cover;
    }
    .cd-bg-video-wrapper video {
      /* you won't see this element in the html, but it will be injected using js */
      display: block;
      position: absolute;
      left: 50%;
      top: 50%;
      bottom: auto;
      right: auto;
      transform: translateX(-50%) translateY(-50%);
      min-height: 100%;
      min-width: 100%;
      max-width: none;
      height: auto;
      width: auto;
    }
    .video.cd-intro-content svg {
      position: absolute;
      z-index: 2;
      /* center the svg inside its parent */
      left: 50%;
      top: 50%;
      bottom: auto;
      right: auto;
      transform: translateX(-50%) translateY(-50%);
      opacity: 0.8;
    }
    .video.cd-intro-content svg.svg-mask {
      /* this is the svg mask used on desktop version */
      display: none;
    }
    @media only screen and (min-width: 768px) {
      .video.cd-intro-content svg.svg-mask-mobile {
      display: none;
      }
      .video.cd-intro-content svg.svg-mask {
      display: block;
      }
    }
    Обработка событий

    Эти эффекты были созданы с использованием только CSS.
    Мы использовали jQuery для видео эффекта только к загрузки фонового видео, если ширина устройства больше, чем 768px. data-video был добавлен в div.cd-bg-video-wrapper чтобы доставать url video.

    [​IMG][​IMG]
     
    Последние данные очков репутации:
    Hocok_B_KapMaHe: 1 Очко (Я нихуя не понял, но выглядит внушительно) 4 ноя 2015
    FlawlessRampage, FruSelk, Hocok_B_KapMaHe и ещё 1-му нравится это.
  2. OFF

    OFF Куратор раздела
    Команда форума Куратор раздела

    Регистрация:
    29 мар 2014
    Сообщения:
    2.212
    Симпатии:
    1.897
    Розыгрышей:
    0
    Репутация:
    469
    А кто автор?
     
  3. sodafloofy

    sodafloofy Gauss

    Регистрация:
    27 дек 2013
    Сообщения:
    179
    Симпатии:
    107
    Розыгрышей:
    0
    Репутация:
    142
    Источник
    Переводил без знания английского :D
     
Статус темы:
Закрыта.

Поделиться этой страницей

  • Яндекс.Метрика
  • Рейтинг@Mail.ru