Яндекс.Метрика

Дизайн-журнал №1. Актуальная информация для дизайнеров, веб дизайнеров, программистов и разработчиков сайтов.

Переключение на изображения высокого разрешения для полноэкраного режима

21 марта 2018 | Опубликовано в css | Нет комментариев »

Использование версий изображений для экранов Retina на веб-странице в большинстве случаев необязательно. Но если изображения раскрываются на весь экран на мониторе настольного компьютера, обязательно нужно переключиться на версию изображения высокого разрешения по следующим причинам:

 

 


• Маленькие изображения будут ужасно выглядеть при растягивании на полный экран, этот вариант совершенно не подходит.

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

• Полноэкранный режим должен быть вызван пользователем, что дает нам возможность подгрузить изображения заранее.

• Полноэкранный режим пока еще не поддерживается мобильными устройствами, так что нам не нужно волноваться о трафике.

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

Код HTML

<figure id="lake">
        <img src="https://s3-us-west-2.amazonaws.com/s.cdpn.io/4273/lake-small.jpg" srcset="https://s3-us-west-2.amazonaws.com/s.cdpn.io/4273/lake-small.jpg 1600w, https://s3-us-west-2.amazonaws.com/s.cdpn.io/4273/lake-large.jpg 2400w" alt="Photograph of Lake Louise, British Columbia">
        <figcaption> Полноэкранный режим с заменой изображений, созданный с помощью атрибута srcset. <button>Нажмите на кнопку</button>, чтобы  перейти в полноэкранный режим. Нажмите клавишу <kbd>ESC</kbd> на клавиатуре, чтобы выйти из полноэкранного режима.
        </figcaption>
</figure>

Использование атрибута srcset гарантирует, что обычная версия изображения будет использована, если ширина экрана устройства меньше или равна 1600 пикселям.

Код CSS

Изображение расположено по центру в полноэкранном режиме с помощью flexbox, подпись изображения в этом режиме спрятана. Обратите внимание, псевдокласс :fullscreen задается с помощью последнего варианта синтаксиса, причем версии с приставками производителей задаются отдельно, так как иногда при объединении их в одну запись браузеры не обрабатывают ее корректно:

#lake {
        position: relative;
        font-size: 0;
}
:-moz-full-screen figcaption {
        opacity: 0;
}
:-webkit-full-screen figcaption {
        opacity: 0;
}
:full-screen #figcaption {
        opacity: 0;
}
#lake figcaption {
        background: rgba(255,255,255,0.75);
        position: absolute; bottom: 0;
        margin: 0; width: 100%;
        padding: 1rem;
        font-size: 1.3rem;
        transition: 1s;
}
#lake img {
        width: 100%;
        height: auto;
}
:-moz-full-screen img {
        width: 100%;
}
:-webkit-full-screen {
        width: 100%;
}
:-moz-fullscreen {
        display: flex;
        align-items: center;
        justify-content: center;
}
:-ms-fullscreen {
        display: flex;
        align-items: center;
        justify-content: center;
}
:fullscreen {
        display: flex;
        align-items: center;
        justify-content: center;
}

Кнопка запрашивает переход в полноэкранный режим с помощью JavaScript:

function launchFullscreen(element) {
        if (element.requestFullScreen) {
element.requestFullscreen();
        } else if (element.mozRequestFullScreen) {
element.mozRequestFullScreen();
        } else if (element.webkitRequestFullscreen) {
element.webkitRequestFullscreen();
        } else if (element.msRequestFullscreen) {
element.msRequestFullscreen();
        }
}
var lake = document.getElementById("lake"),
fullbutton = lake.getElementsByTagName("button")[0];
fullbutton.onclick = function() {
        launchFullscreen(lake);
}

В результате получаем следующее:

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

Не забудьте, что Вам может понадобиться плагин picturefill, который добавляет в браузеры, па данный момент не поддерживающие атрибут srcset, нужные функции для работы этого атрибута.

Автор урока Dudley Storey

Перевод — Дежурка

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


�


Коментарии запрещены.