Как добавить на сайт видео с видеохостинга
YouTube, ВКонтакте и многие другие сервисы предлагают бесплатно разместить на своём хостинге видеофайл. Для каждого видеофайла они создают отдельную страницу с видеоплеером. Вот пара URL-адресов таких страниц (мультфильм один, а плееры разные):
- //www.youtube.com/embed/1TYl3jhfEDA
- //vk.com/video_ext.php?oid=-22277933&id=456239036&hash=79568ec25a1b33de&hd=2
Благодаря HTML-тегу iframe можно создать элемент, который позволяет на одной странице видеть содержимое другой. Например,
<iframe src="http://shpargalkablog.ru/2015/03/link.html"></iframe>
Также встраиваются страницы видео с видиохостингов:
<iframe src="//www.youtube.com/embed/1TYl3jhfEDA"></iframe>
Как поменять URL в iframe с помощью HTML
Нажав на ссылку можно изменить значение атрибута src фрейма. Для чего атрибут target ссылки должен содержать значение атрибута name фрейма.
<iframe src="http://shpargalkablog.ru/2015/03/link.html" name="raz"></iframe> <a href="//www.youtube.com/embed/1TYl3jhfEDA" target="raz">Нажать на ссылку</a>
Видео слайдер для сайта
Внимание! Далее в примерах использованы URL-адреса Ютуба (можно заменить на URL-адреса любого другого сайта), так как
- сервис позволяет менять настройки ролика, добавляя параметры в URL, например, можно переключаться к определённому моменту, тем самым разбивая одну запись на несколько частей,
- есть изображения к видео (превью), в том числе миниатюры.
<style> .slider { /* блок */ background: rgba(240,240,240,.5); text-align: center; } /* резиновый iframe: чтобы видео занимало всё доступное пространство и пропорционально уменьшалось/увеличивалось при изменении экрана монитора */ .slider div { position: relative; padding-top: 56.25%; } .slider iframe { position: absolute; top: .5%; left: .5%; width: 99%; height: 99%; } /* стиль CSS для кнопок-переключателей (я немного побаловалась), который можно изменять или вовсе не использовать */ .slider a { /* вид кнопок */ display: inline-block; padding: 0 .5em; text-decoration: none; color: blue; } .slider a:visited { /* вид кнопок просмотренных видео */ color: rgb(204,204,203); } .slider a:hover { /* вид кнопок при наведении */ transform: scale(1.5); } .slider a:not(:active):focus { /* блокировка второго клика, но не третьего */ pointer-events: none; } .slider a::before { /* из-за Mozilla Firefox приходится использовать псевдоэлемент */ content: "\25cf"; position: absolute; color: rgba(0,0,1,.1); transition: color 0s 9999999s; /* нужен, чтобы запомнился цвет после нажатия кнопки, подробнее про transition */ } .slider a:nth-of-type(1)::before { /* вид первой кнопки при загрузки страницы */ color: rgb(0,129,0); } .slider span:active a::before { /* для неактивных кнопок псевдоэлемент не нужен */ color: rgba(0,0,0,0); transition: color 0s; } .slider span:active a:nth-of-type(1)::before { /* вид неактивной первой кнопки, чтобы она выглядела как посещённая */ color: #ccc; transition: color 0s; } .slider span:active a:active::before { /* вид нажатой кнопки [в Internet Explorer отсутствует всплытие :active] */ color: green; transition: color 0s; } </style> <div class="slider"> <div><iframe src="//www.youtube.com/embed/1TYl3jhfEDA?rel=0" allowfullscreen frameborder="0" name="slider"></iframe></div> <span> <a href="//www.youtube.com/embed/1TYl3jhfEDA?rel=0&autoplay=1" target="slider">● </a><a href="//www.youtube.com/embed/xFa2_PVMeDQ?rel=0&autoplay=1" target="slider">● </a><a href="//www.youtube.com/embed/hSrOpTYKNMw?rel=0&autoplay=1" target="slider">● </a><a href="//www.youtube.com/embed/WFhzzJjRncI?rel=0&autoplay=1" target="slider">●</a> </span> </div>
Карусель видео с миниатюрами
Точки можно заменить изображениями.
<style> .carousel { padding: .3em .3em 0; background: rgb(240,240,240); text-align: center; } .carousel div { position: relative; margin-bottom: .3em; padding-top: 56.25%; } .carousel iframe { position: absolute; top: 0; left: 0; width: 100%; height: 100%; } .carousel span { display: inline-block; word-spacing: 1em; /* расстояние между картинками */ /* прокрутка миниатюр при необходимости */ overflow: auto; white-space: nowrap; word-wrap: normal; } .carousel a { position: relative; display: inline-block; max-width: 120px; /* максимальная ширина миниатюр */ width: 25%; /* ширина миниатюр */ border: 1px solid blue; /* рамка вокруг миниатюр */ opacity: .7; text-decoration: none; } .carousel a:visited, .carousel a:nth-of-type(1) { border-color: #555; /* рамка вокруг миниатюр просмотренных видео */ } .carousel a:hover { opacity: 1; } .carousel a:not(:active):focus { pointer-events: none; } .carousel a::before { content: ""; position: absolute; top: 0em; right: 0em; bottom: 0em; left: 0em; background: rgba(0,0,1,.1); transition: background 0s 9999999s; } .carousel a:nth-of-type(1)::before { background: rgba(255,255,254,.7); } .carousel span:active a::before { background: rgba(0,0,0,0); transition: background 0s; } .carousel span:active a:active::before { background: rgba(255,255,255,.7); transition: background 0s; } .carousel img { max-width: 100%; vertical-align: middle; /* убрать нижний отступ до рамки под картинкой */ } </style> <div class="carousel"> <div><iframe src="//www.youtube.com/embed/1TYl3jhfEDA?rel=0" allowfullscreen frameborder="0" name="slider1"></iframe></div> <span> <a href="//www.youtube.com/embed/1TYl3jhfEDA?rel=0&autoplay=1" target="slider1"><img src="//img.youtube.com/vi/1TYl3jhfEDA/default.jpg"></a> <a href="//www.youtube.com/embed/xFa2_PVMeDQ?rel=0&autoplay=1" target="slider1"><img src="//img.youtube.com/vi/xFa2_PVMeDQ/default.jpg"></a> <a href="//www.youtube.com/embed/hSrOpTYKNMw?rel=0&autoplay=1" target="slider1"><img src="//img.youtube.com/vi/hSrOpTYKNMw/default.jpg"></a> <a href="//www.youtube.com/embed/WFhzzJjRncI?rel=0&autoplay=1" target="slider1"><img src="//img.youtube.com/vi/WFhzzJjRncI/default.jpg"></a> </span> </div>
Видео с боковыми вкладками-переключателями
<style> .gallery { display: flex; flex-flow: wrap; border: solid rgb(240,240,240); } .gallery div { /* блоки видео + списков */ flex: 150px; position: relative; text-align: center; } .gallery div:nth-of-type(1) { flex: 10000 1 300px; /* если ширина менее 300 + 150 = 450px , то списки миниатюр смещаются на нижний ряд, подробнее про свойство flex */ } .gallery div::before { content: ""; display: block; padding-top: 100px; } .gallery div:nth-of-type(1)::before { padding-top: 56.25%; } .gallery iframe, .gallery span { position: absolute; top: 0; left: 0; width: 100%; height: 100%; overflow: auto; } .gallery a { /* для разнообразия, иконки не затемнены, так проще оценить код галереи видео */ display: inline-block; margin-top: 5px; } .gallery a:last-child { margin-bottom: 5px; } .gallery iframe, .gallery img { max-width: 100%; vertical-align: middle; } </style> <div class="gallery"> <div> <iframe src="//www.youtube.com/embed/1TYl3jhfEDA?rel=0" allowfullscreen frameborder="0" name="tab"></iframe> </div> <div> <span> <a href="//www.youtube.com/embed/1TYl3jhfEDA?rel=0&autoplay=1" target="tab"><img src="//img.youtube.com/vi/1TYl3jhfEDA/default.jpg"></a> <a href="//www.youtube.com/embed/xFa2_PVMeDQ?rel=0&autoplay=1" target="tab"><img src="//img.youtube.com/vi/xFa2_PVMeDQ/default.jpg"></a> <a href="//www.youtube.com/embed/hSrOpTYKNMw?rel=0&autoplay=1" target="tab"><img src="//img.youtube.com/vi/hSrOpTYKNMw/default.jpg"></a> <a href="//www.youtube.com/embed/WFhzzJjRncI?rel=0&autoplay=1" target="tab"><img src="//img.youtube.com/vi/WFhzzJjRncI/default.jpg"></a> </span> </div> </div>
Комментариев нет: