Фоновое слайдшоу изображений на весь экран с помощью CSS3 - «Верстка»
Заждались: продажи S.T.A.L.K.E.R. 2: Heart of Chornobyl за два дня после релиза превысили миллион копий - «Новости сети»
Заждались: продажи S.T.A.L.K.E.R. 2: Heart of Chornobyl за два дня после релиза превысили миллион копий - «Новости сети»
Блогер показал, как пройти Baldur’s Gate 3, не делая в бою абсолютно ничего - «Новости сети»
Блогер показал, как пройти Baldur’s Gate 3, не делая в бою абсолютно ничего - «Новости сети»
Microsoft открыла доступ к скандальной ИИ-функции Recall — пользователям разрешили ограничить её «подглядывания» - «Новости сети»
Microsoft открыла доступ к скандальной ИИ-функции Recall — пользователям разрешили ограничить её «подглядывания» - «Новости сети»
У Nvidia нашлась ахиллесова пята — треть выручки зависит от настроения трёх клиентов - «Новости сети»
У Nvidia нашлась ахиллесова пята — треть выручки зависит от настроения трёх клиентов - «Новости сети»
Представлен 80-долларовый смартфон Tecno Pop 9 — с Helio G50 и батареей на 5000 мА·ч - «Новости сети»
Представлен 80-долларовый смартфон Tecno Pop 9 — с Helio G50 и батареей на 5000 мА·ч - «Новости сети»
Первая за 11 лет новая книга Анджея Сапковского из цикла «Ведьмак» получила название «Перекрёсток воронов» — первые подробности - «Новости сети»
Первая за 11 лет новая книга Анджея Сапковского из цикла «Ведьмак» получила название «Перекрёсток воронов» — первые подробности - «Новости сети»
Роскомнадзор с декабря начнёт блокировать сайты за публикацию научной информации о VPN - «Новости сети»
Роскомнадзор с декабря начнёт блокировать сайты за публикацию научной информации о VPN - «Новости сети»
Миллионер с зарплатой сантехника: выяснилось, сколько зарабатывает глава OpenAI - «Новости сети»
Миллионер с зарплатой сантехника: выяснилось, сколько зарабатывает глава OpenAI - «Новости сети»
SpaceX рассказала, почему затопила ракету Super Heavy во время последнего запуска Starship - «Новости сети»
SpaceX рассказала, почему затопила ракету Super Heavy во время последнего запуска Starship - «Новости сети»
Представлена технология охлаждения чипов светом — секретная и только по предварительной записи - «Новости сети»
Представлена технология охлаждения чипов светом — секретная и только по предварительной записи - «Новости сети»
Новости мира Интернет » Самоучитель CSS » Вёрстка » Фоновое слайдшоу изображений на весь экран с помощью CSS3 - «Верстка»

Технология CSS3 становится все более популярной, а вещи которые с ее помощью реализуются, все более впечатляющими и захватывающими. Сегодня пост об одном из таких приемов. Если вы помните, некоторое время назад я рассказывал про сервис красивых HD картинок для вдохновения Bepic.ru  – меня там очень сильно впечатлил вывод изображений на весь экран браузера. При выборке “эпических” и масштабных HD картинок высокого качества эффект создавался очень крутой. Так вот недавно в сети натолкнулся на небольшой CSS3 урок, что позволяет расположить в качестве фона слайдшоу картинок на весь экран, причем с применением некоторой анимации.



Кроме того, на странице выводится заголовок картинки и тоже с помощью CSS. Смотрится очень круто! Хотя нужно уточнить, что работать это будет только в тех браузерах, которые поддерживают CSS анимацию. Итак, поехали:


Разметка страницы


Для нашего слайдшоу будем использовать неупорядоченный список, где для каждой картинки добаим тег Span, а в DIV будет размещаться заголовок.





  • Image 01

    re·lax·a·tion







  • Для каждого элемента Span будут закреплено определенное фоновое изображение (background image) для слайдшоу.


    CSS стили


    Для начала нужно задать стили для самого списка – он будет с фиксированной позицией, но растянутым на всю область видимости. Кроме того используется псевдоэлемент :after дабы расположить некоторый рисунок (с эффектом) поверх изображения:



    .cb-slideshow,
    .cb-slideshow:after {
    position: fixed;
    width: 100%;
    height: 100%;
    top: 0px;
    left: 0px;
    z-index: 0;

    .cb-slideshow:after {
    content: '';
    background: transparent url(../images/pattern.png) repeat top left;


    В коде использовалось повторение стиля .cb-slideshow с картинкой для создания эффекта изображения, хотя с таким же успехом можно попробовать разместить градиент.


    Span, содержащий фоновые изображения, будет позиционироваться абсолютно и иметь высоту и ширину 100%. Поскольку у него внутри будет определенный текст, сделаем прозрачным color так как мы не хотим его отображать. Свойство background-size с значением cover позволит удостовериться в том, что фоновое изображение покрывает всю площадь элемента, который в свою очередь растягивается на всю ширину видимого экрана. Прозрачность установлена в значение 0, это будет изменено уже при анимации.



    .cb-slideshow li span {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0px;
    left: 0px;
    color: transparent;
    background-size: cover;
    background-position: 50% 50%;
    background-repeat: none;
    opacity: 0;
    z-index: 0;
    animation: imageAnimation 36s linear infinite 0s;


    Анимация для каждого Span будет длится как минимум 36 секунд и запускаться бесконечное число раз. Но для начала рассмотрим как решить вопрос с отображаемым заголовком:



    .cb-slideshow li div {
    z-index: 1000;
    position: absolute;
    bottom: 30px;
    left: 0px;
    width: 100%;
    text-align: center;
    opacity: 0;
    color: #fff;
    animation: titleAnimation 36s linear infinite 0s;

    .cb-slideshow li div h3 {
    font-family: 'BebasNeueRegular', 'Arial Narrow', Arial, sans-serif;
    font-size: 240px;
    padding: 0;
    line-height: 200px;


    Анимация для блока заголовка также будет длится 36 секунд.


    Далее в CSS стилях следует определить фоновые изображения для каждого Span и задержку анимации (animation delay) дабы каждая следующая картинка и заголовок появлялась через 6 секунд после предыдущего.



    .cb-slideshow li:nth-child(1) span {
    background-image: url(../images/1.jpg)

    .cb-slideshow li:nth-child(2) span {
    background-image: url(../images/2.jpg);
    animation-delay: 6s;

    .cb-slideshow li:nth-child(3) span {
    background-image: url(../images/3.jpg);
    animation-delay: 12s;

    .cb-slideshow li:nth-child(4) span {
    background-image: url(../images/4.jpg);
    animation-delay: 18s;

    .cb-slideshow li:nth-child(5) span {
    background-image: url(../images/5.jpg);
    animation-delay: 24s;

    .cb-slideshow li:nth-child(6) span {
    background-image: url(../images/6.jpg);
    animation-delay: 30s;

    .cb-slideshow li:nth-child(2) div {
    animation-delay: 6s;

    .cb-slideshow li:nth-child(3) div {
    animation-delay: 12s;

    .cb-slideshow li:nth-child(4) div {
    animation-delay: 18s;

    .cb-slideshow li:nth-child(5) div {
    animation-delay: 24s;

    .cb-slideshow li:nth-child(6) div {
    animation-delay: 30s;


    Теперь рассмотрим процесс анимации более детально. Элементам Span установлено время анимации 36 секунд. За это время прозрачность будет меняться с 0 до 1 когда анимация достигает 8%. Дальше прозрачность сохраняется пока не достигнем 17%. После 25% она снова должна быть равна нулю и оставаться такой до конца.


    Откуда взялись эти цифры? – давайте разбираться. Мы хотим чтобы каждое изображение было видимым 6 секунд, кроме того, после прохождения всего цикла опять должна быть показана первая картинка. Поскольку всего используется 6 изображений, итого потребуется 36 секунд. Теперь нам нужно задать соответствующие значения по времени для прозрачности. Зная тот факт, что второй кадр (картинка) анимации начнется через 6 секунд нам нужно знать какой процентиль анимации должен быть для показа первой картинки. Разделим 6 на 36 и получим 0.166… что будет 16% для нашего шага параметра keyframe. Теперь, поскольку мы не хотим дабы наша картинка просто исчезала все время, определим промежуточный шаг, который будет равен половине полученного ранее значения, то есть 8%. Суть в том, чтобы картинка показалась полностью, после того постепенно исчезала на 17%, и соответственно полностью исчезла на 25%. (ред. – тут, конечно, придется немного помозговать и разобраться со всеми тонкостями анимации и математических действий. Если захотите использовать использовать код “как есть” – просто разместите его в стилях либо делайте аналогичные расчеты).



    @keyframes imageAnimation {
    0% { opacity: 0; animation-timing-function: ease-in;
    8% { opacity: 1; animation-timing-function: ease-out;
    17% { opacity: 1
    25% { opacity: 0
    100% { opacity: 0


    Аналогичные расчеты применимы и для анимации заголовка, единственное что мыс делаем дабы он немного быстрее исчезал, поэтому прозрачность = 0 на 19%.



    @keyframes titleAnimation {
    0% { opacity: 0
    8% { opacity: 1
    17% { opacity: 1
    19% { opacity: 0
    100% { opacity: 0


    Для всех интернет браузеров, которые не поддерживают анимацию мы просто показываем последнее изображение слайдшоу, установив прозрачность этого Span равную 1.



    .no-cssanimations .cb-slideshow li span{
    opacity: 1;


    Напоследок можно позаботиться о размере шрифта, когда область просмотра меньше. Будем использовать media queries дабы задать шрифт меньше для определенных значений ширины.



    @media screen and (max-width: 1140px) {
    .cb-slideshow li div h3 { font-size: 140px

    @media screen and (max-width: 600px) {
    .cb-slideshow li div h3 { font-size: 80px


    Пожалуй, на этом все для самой простой версии слайдшоу с фоновыми изображениями на весь экран. Хотя можно кое-что добавить в процесс перехода между картинками.


    Альтернативная анимация


    Следующий пример кода вместе с изменением масштаба изображения также добавляет небольшой поворот:



    @keyframes imageAnimation {
    0% {
    opacity: 0;
    animation-timing-function: ease-in;

    8% {
    opacity: 1;
    transform: scale(1.05);
    animation-timing-function: ease-out;

    17% {
    opacity: 1;
    transform: scale(1.1) rotate(3deg);

    25% {
    opacity: 0;
    transform: scale(1.1) rotate(3deg);

    100% { opacity: 0


    Заголовок должен будет “выезжать” справа (нужно изменить text-align блоков в значение right), после чего убираться перемещаясь влево с эффектом исчезновения:



    @keyframes titleAnimation {
    0% {
    opacity: 0;
    transform: translateX(200px);

    8% {
    opacity: 1;
    transform: translateX(0px);

    17% {
    opacity: 1;
    transform: translateX(0px);

    19% {
    opacity: 0;
    transform: translateX(-400px);

    25% { opacity: 0
    100% { opacity: 0


    Вот, в принципе, и все. На этой странице вы можете найти демо версии (примеры) работы CSS3 эффектов. Экспериментируйте с разными эффектами и анимацией для заголовков и картинок. Следует также заметить, что в данный момент наиболее красиво и плавно это слайдшоу будет работать в браузерах с поддержкой Webkit таких как Chrome и особенно Safari. На остальных, увы, может быть заметно подтормаживание, но в целом впечатления от подобной галереи думаю у каждого будет хорошим.


    Для создания дополнительной перелинковки в Blogspot создаем хлебные крошки (Breadcrumb) на Blogger страницах с помощью специальной html вставки в шаблоне.

    Хотите украсить свой дачный участок, где все уже есть? – установите фонтан причем побольше и покрасивеее, куда можно подключить разные звуко-музыкальные эффекты.


    Технология CSS3 становится все более популярной, а вещи которые с ее помощью реализуются, все более впечатляющими и захватывающими. Сегодня пост об одном из таких приемов. Если вы помните, некоторое время назад я рассказывал про сервис красивых HD картинок для вдохновения Bepic.ru – меня там очень сильно впечатлил вывод изображений на весь экран браузера. При выборке “эпических” и масштабных HD картинок высокого качества эффект создавался очень крутой. Так вот недавно в сети натолкнулся на небольшой CSS3 урок, что позволяет расположить в качестве фона слайдшоу картинок на весь экран, причем с применением некоторой анимации. Кроме того, на странице выводится заголовок картинки и тоже с помощью CSS. Смотрится очень круто! Хотя нужно уточнить, что работать это будет только в тех браузерах, которые поддерживают CSS анимацию. Итак, поехали: Разметка страницы Для нашего слайдшоу будем использовать неупорядоченный список, где для каждой картинки добаим тег Span, а в DIV будет размещаться заголовок. Image 01 re·lax·a·tion Для каждого элемента Span будут закреплено определенное фоновое изображение (background image) для слайдшоу. CSS стили Для начала нужно задать стили для самого списка – он будет с фиксированной позицией, но растянутым на всю область видимости. Кроме того используется псевдоэлемент :after дабы расположить некоторый рисунок (с эффектом) поверх изображения: .cb-slideshow, .cb-slideshow :after _

    Смотрите также

    А что там на главной? )))



    Комментарии )))