Скролинг текста как в «Звездных войнах»
Как сделать титры из звезных войн на HTML и CSS.
Скроллинг текста из «Звездных войн» под углом 30-45 градусов с перспективой к горизонту - эта классика кинематографа, которая стала предметом всевозможных упражнений и уроков.
Первое, что нужно сделать, это написать контент для вашей HTML страницы. Мы использовали текст из нашего веб-сайта. В основном веб-сайт содержит заголовок и раздел для текста. Нам нужны два контейнера – один с ID “titles” и внутренний контейнер с контентом с ID “titlecontent”.
HTML:
<!doctype html> <meta charset="utf8" /> <header></header> <body> <section> <div id="titles"> <div id="titlecontent"> Тут ВАШ текст </div> </section> </body> </html>
Далее необходимо стилизовать дизайн. Нам нужно убедиться, что фон черный, шрифт San-Serif или современный "Droid Sans", и что мы будем использовать 100% высоту и ширину, установим “перспективу” добавим “transform-origin: 50% 100%; transform: perspective(300px) rotateX(25deg);”.
CSS
body, html { width: 100%; height: 100%; font-family: "Droid Sans", arial, verdana, sans-serif; font-weight: 700; color: #ff6; background-color: #000; overflow: hidden; } #titles { position: absolute; width: 18em; height: 50em; bottom: 0; left: 50%; margin-left: -9em; font-size: 350%; font-weight: bold; text-align: justify; overflow: hidden; transform-origin: 50% 100%; transform: perspective(300px) rotateX(25deg); }
Добавим черный градиент сверху через псевдо-элемент.
CSS
#titles:after { position: absolute; content: ' '; left: 0; right: 0; top: 0; bottom: 60%; background-image: linear-gradient(top, rgba(0,0,0,1) 0%, transparent 100%); pointer-events: none; }
Используем правило для прокрутки текста путем добавления анимации keyframes.
Правило @keyframes устанавливает ключевые кадры при анимации элемента. Ключевой кадр это свойства элемента (прозрачность, цвет, положение и др.), которые должны применяться к элементу в заданный момент времени. Таким образом, анимация представляет собой плавный переход стилевых свойств от одного ключевого кадра к другому. Вычисление промежуточных значений между такими кадрами берёт на себя браузер.
Самый простой вариант, когда у нас есть только два ключевых кадра — исходное и конечное состояние. Поддерживается только Chrome, Safari, Firefox, IE10 браузерами.
CSS
#titlecontent { position: absolute; top: 100%; animation: scroll 100s linear 4s infinite; } @keyframes scroll { 0% { top: 100%; } 100% { top: -170%; } }
Весь исходный код
CSS:
body, html { width: 100%; height: 100%; font-family: "Droid Sans", arial, verdana, sans-serif; font-weight: 700; color: #ff6; background-color: #000; overflow: hidden; } #titles { position: absolute; width: 18em; height: 50em; bottom: 0; left: 50%; margin-left: -9em; font-size: 350%; font-weight: bold; text-align: justify; overflow: hidden; transform-origin: 50% 100%; transform: perspective(300px) rotateX(20deg); } #titles:after { position: absolute; content: ' '; left: 0; right: 0; top: 0; bottom: 60%; background-image: linear-gradient(top, rgba(0,0,0,1) 0%, transparent 100%); pointer-events: none; } #titlecontent { position: absolute; top: 100%; animation: scroll 200s linear 0s infinite; } @keyframes scroll { 0% { top: 100%; } 100% { top: -170%; } }