Как добавить Ютуб на сайт
На странице показа ролика нажать на "Поделиться" — "HTML-код"
Разместить на своём сайте, используя HTML-режим при редактировании статьи, предложенный IFRAME вида:
<iframe width="480" height="360" src="https://www.youtube.com/embed/xFa2_PVMeDQ" frameborder="0" allowfullscreen></iframe>
Как вставить несколько видео YouTube
Для того, чтобы снизить время загрузки страницы, а форму просмотра сделать более эстетичной на место, где мы хотели бы видеть наше видео [для Blogger, при редактировании или написании сообщения, нужно перейти на вкладку "HTML"], добавляем код:
<style>
#video12 {
position: relative;
margin-bottom: 110px;
padding-bottom: 75%;
}
#video12 iframe {
position: absolute;
width: 100%;
height: 100%;
}
#video12 div {
position: absolute;
bottom: -110px;
width: 100%;
height: 100px;
padding: 0;
overflow-x: auto;
white-space: nowrap;
text-align: center;
}
#video12 img {
height: calc(100% - (5px + 1px)*2 - 10px);
margin: 0 5px 0 0;
padding: 5px;
border: 1px solid #555;
border-radius: 5px;
opacity: .7;
}
#video12 img:hover {
opacity: 1;
cursor: pointer;
}
#video12 img:focus {
opacity: .2;
}
</style>
<div id="video12">
<iframe src="http://www.youtube.com/embed/xFa2_PVMeDQ?rel=0" allowfullscreen="" frameborder="0"></iframe>
<div>
<img src="http://img.youtube.com/vi/xFa2_PVMeDQ/1.jpg" tabindex="2" data-start="32" data-end="60"/>
<img src="http://img.youtube.com/vi/hSrOpTYKNMw/1.jpg" tabindex="2"/>
<img src="http://img.youtube.com/vi/WFhzzJjRncI/1.jpg" tabindex="2"/>
</div>
</div>
<script>
var IMG = document.querySelectorAll('#video12 img'),
IFRAME = document.querySelector('#video12 iframe');
for (var i = 0; i < IMG.length; i++) {
IMG[i].onclick = function() {
var idIMG = this.src.replace(/http...img.youtube.com.vi.([\s\S]*?).1.jpg/g, '$1');
IFRAME.src = 'http://www.youtube.com/embed/' + idIMG + '?rel=0&autoplay=1';
if(this.dataset.end) IFRAME.src = IFRAME.src.replace(/([\s\S]*)/g, '$1&end=' + this.dataset.end);
if(this.dataset.start) IFRAME.src = IFRAME.src.replace(/([\s\S]*)/g, '$1&start=' + this.dataset.start);
this.style.backgroundColor='#555';
}
}
</script>, где xFa2_PVMeDQ — идентификатор ролика. Где его взять? Посмотрите на первый скриншот, он выделен синим цветом. И вот статья как сделать картинки-миниатюры на видео (они же превью) Ютуб.
Что умеет скрипт
- превью текущего видео делает затемнённым.
- у превью просмотренного ролика появляется серая рамка благодаря this.style.backgroundColor='#555';.
- при большом количестве изображений будет возможность их прокручивать (как ещё можно сделать).
- если не нужно, чтобы ролики начинались сразу после нажатия на превью, уберите &autoplay=1.
- ежели надо, чтобы ролик начался с определённого момента (как сделать), то следует добавить в тег img data-start="32". Вместо 32 поставить своё значение в секундах.
- коли хочется, чтобы видео воспроизводилось до какого-то момента, то необходимо внести data-end="60". Вместо 60 написать своё значение в секундах.
- резиновый, растягивается на всю ширину, поэтому не нужно рассчитывать размеры отдельно для каждой области.
- если больше интересно вертикальное размещение изображений, то стиль может быть таким:
<style> #video12 { position: relative; padding-bottom: 75%; } #video12 iframe { position: absolute; width: calc(100% - 120px); height: calc(100% - 120px*3/4); } #video12 div { position: absolute; top: 0; right: 0; width: 110px; height: 100%; padding: 5px; overflow-y: auto; } #video12 img { width: calc(100% - (5px + 1px)*2); padding: 5px; border: 1px solid #555; border-radius: 5px; opacity: .7; } #video12 img:hover { opacity: 1; cursor: pointer; } #video12 img:focus { opacity: .2; } </style>
Несколько видео с текстом "серия 1"
Внешний вид самый простецкий, его нужно изменить согласно дизайну сайта.
серия 1
серия 2
серия 3
<style>
#video12 {
position: relative;
padding-bottom: 75%;
}
#video12 iframe {
position: absolute;
width: calc(100% - 5em);
height: 100%;
}
#video12 div {
position: absolute;
top: 0;
right: 0;
width: 5em;
height: 100%;
overflow-y: auto;
}
#video12 span {
display: block;
text-align: center;
}
#video12 span:hover {
color: #ff3200;
cursor: pointer;
}
#video12 span:focus {
color: blue;
}
</style>
<div id="video12">
<iframe src="http://www.youtube.com/embed/xFa2_PVMeDQ?rel=0" allowfullscreen="" frameborder="0"></iframe>
<div>
<span data-video="xFa2_PVMeDQ" tabindex="0">серия 1</span>
<span data-video="hSrOpTYKNMw" tabindex="0">серия 2</span>
<span data-video="WFhzzJjRncI" tabindex="0">серия 3</span>
</div>
</div>
<script>
var IMG = document.querySelectorAll('#video12 span'),
IFRAME = document.querySelector('#video12 iframe');
for (var i = 0; i < IMG.length; i++) {
IMG[i].onclick = function() {
IFRAME.src = 'http://www.youtube.com/embed/' + this.dataset.video + '?rel=0&autoplay=1';
if(this.dataset.end) IFRAME.src = IFRAME.src.replace(/([\s\S]*)/g, '$1&end=' + this.dataset.end);
if(this.dataset.start) IFRAME.src = IFRAME.src.replace(/([\s\S]*)/g, '$1&start=' + this.dataset.start);
this.style.backgroundColor='rgba(0,0,0,.2)';
}
}
</script>
HTML код ролика YouTube: расширенные возможности URL-адреса
Из предложенного кода следует взять идентификатор видеоролика, добавить его в форму ниже и настроить под свои нужды [см. допустимые параметры]:
<iframe width="480" height="360" src="https://www.youtube.com/embed/xFa2_PVMeDQ" frameborder="0" allowfullscreen></iframe>
82 комментария:
Я тему даже на блоге не могу настроить( может подскажите что не так?если есть свободная минутка...
(iframe width="560" height="315" src="http://www.youtube.com/embed/m24IuebMXPo" frameborder="0" allowfullscreen>(/iframe>(/div>
(script type="text/javascript">
swfobject.embedSWF(
'http://www.youtube.com/v/m24IuebMXPo&enablejsapi=1&rel=0&fs=1',
'containerYT',
'425','344', '8',null,null,
{allowScriptAccess: 'always',allowFullScreen: 'true'},
{id: 'reproductorYT'});
function cargarVideo(id) {
var o = document.getElementById( 'reproductorYT' );
if( o ) {o.loadVideoById( id );}
}
(/script>
#reproductorYT {
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
padding: 5px;
border: 1px solid #555;
}
Если посредством IFRAME из YouTube, то окружите его div, например,
<div class="youtube"><iframe width="560" height="315" src="http://www.youtube.com/embed/SO4YuDAkplU" frameborder="0" allowfullscreen></iframe></div>
и к нему стиль
.youtube{
text-align: center;
padding: 1px;
border: 1px solid #555;
}
Или любой другой на ваше усмотрение.
не работает переключение видео, в чем может быть причина?
{allowFullScreen: 'true'},
добавьте
{allowScriptAccess: 'always',allowFullScreen: 'true'},
и без строки <div id="containerYT">сообщение</div> не будет работать
Спасибо за урок. А нельзя ли в Вашей конструкции сделать так, чтобы при выборе видео, страница возвращалась бы к плейеру. Например, при большом списке роликов посетителю приходиться отматывать страницу до начала, чтобы просмотреть выбранный ролик.
Спасибо.
<a href="javascript:cargarVideo('ID_N');" onClick="scrollTo(0,0); return false;"><img src="http://img.youtube.com/vi/ID_N/1.jpg" /></a>
Спасибо.
(a href="javascript:cargarVideo('ID_N');" onClick="scrollTo(0,0); return false;"><img src="http://img.youtube.com/vi/ID_N/1.jpg" /)</a)
---------------------------------------------------------------------
Здравствуйте, Наташа.
Проблемка, к плейеру то "отматывает", а вот выбранный ролик не загружается.
<a href="#" onclick="cargarVideo('ID_N'); scrollTo(0,0); return false">
Извените, что пишу не по теме, но уже весь инет перерыл и не нашел ничего подходящего. Подскажите возможность, как позиционировать новое окно заданных размеров (например форму регистрации) на странице в Opere? А если есть кросс-браузерная конструкция, то вообще классно.
Большое спасибо.
Спасибо.
<div class="videominiaturas"><img src="http://img.youtube.com/vi/xFa2_PVMeDQ/1.jpg" onclick="cargarVideo('xFa2_PVMeDQ'); this.style.backgroundColor='#555'; return false"/><img src="http://img.youtube.com/vi/hSrOpTYKNMw/1.jpg" onclick="cargarVideo('hSrOpTYKNMw'); this.style.backgroundColor='#555'; return false"/><img src="http://img.youtube.com/vi/WFhzzJjRncI/1.jpg" onclick="cargarVideo('WFhzzJjRncI'); this.style.backgroundColor='#555'; return false"/></div>
this.style.backgroundColor='#555' - меняет фон картинки.
В html редакторе материала нету тега 'head' и если эту строку просто вставлять вначале кода, то она затирается и естественно скрипт не подхватится.
Подскажите, что делать? Если нужно вставить эту строчку в какой-то локальный файл, то в какой? Спасибо
<iframe src="http://www.youtube.com/embed/KMZZBoSKP2c?rel=0" allowfullscreen="" frameborder="0" id="video12"></iframe>
<div style="text-align: center; margin-top: 2px;">
<a href="#" onclick="document.getElementById('video12').src='http://www.youtube.com/embed/KMZZBoSKP2c?rel=0';return false;"><img src="http://img.youtube.com/vi/KMZZBoSKP2c/1.jpg" /></a> <a href="#" onclick="document.getElementById('video12').src='http://www.youtube.com/embed/O0pqugrjzhs?rel=0';return false;"><img src="http://img.youtube.com/vi/O0pqugrjzhs/1.jpg" /></a> <a href="#" onclick="document.getElementById('video12').src='http://www.youtube.com/embed/bVOOB_Q0MZY?rel=0';return false;"><img src="http://img.youtube.com/vi/bVOOB_Q0MZY/1.jpg" /></a></div>
Принцип тот же. Пример, http://shpargalkablog.ru/2012/11/perelinkovka.html
-- достаточно вставить - то что считывается при клике правой мышей - под пунктом
"Copy embed html" - или такой же записью на национальном языке
---------------------
в случае ее отсутствия можно просто вставить ссылку через тег embed с указанием на исполняемый MIME-тип плэйеру
Чтобы прописать стиль один раз <div id="video12"> нужно заменить на <div id="video12" class="video12">
В стилях вместо #video12 применить .video12
Тогда следующий блок будет <div id="video13" class="video12"> Затем <div id="video14" class="video12">
Скрипт
<script>
var IMG = document.querySelectorAll('[id^="video1"] span');
for (var i = 0; i < IMG.length; i++) {
IMG[i].onclick = function() {
var IFRAME = this.parentNode.previousElementSibling;
IFRAME.src = 'http://www.youtube.com/embed/' + this.dataset.video + '?rel=0&autoplay=1';
if(this.dataset.end) IFRAME.src = IFRAME.src.replace(/([\s\S]*)/g, '$1&end=' + this.dataset.end);
if(this.dataset.start) IFRAME.src = IFRAME.src.replace(/([\s\S]*)/g, '$1&start=' + this.dataset.start);
this.style.backgroundColor='rgba(0,0,0,.2)';
}
}
</script>
См. последний пример, только вместо "серия 1" пишите код своей картинки
при нажатии на ссылку - появлялся бы блок с видео и автоматом начинал проигрываться.
получается только спрятать бок и проявить его по нажатию. но проблема в том, что он когда "none" все равно начинает проигрываться сам, хоть его и не видно. а если убрать autoplay то приходится после появления блока дополнительно тыкать на play (((
спасибо
вариант 1 http://shpargalkablog.ru/2011/02/modalnoe-okno-css.html (см. для YouTube)
вариант 2 http://shpargalkablog.ru/2014/01/pause-youtube.html
var idIMG = this.src.replace(/http...img.youtube.com.vi.([\s\S]*?).1.jpg/g, '$1');
можно рандомом добавлять из списка выбранных вами видео
<script>
var image=new Array(12);
image[0]="xFa2_PVMeDQ";
image[1]="hSrOpTYKNMw";
image[2]="WFhzzJjRncI";
image[3]="JMJXvsCLu6s";
var alea=Math.round(Math.random()*3);
document.write('<iframe src="http://www.youtube.com/embed/' + image[alea] + '?rel=0" allowfullscreen="" frameborder="0"></iframe>');
</script>
Наверняка есть более расширенный вариант, но нужно читать документацию. Можно ведь поиск по своему каналу сделать http://shpargalkablog.ru/2011/08/poisk-youtubecom.html
Кстати, сложно ли реализовать скрипт для просмотра фоток с видео, то есть при нажатии на миниатюру что бы показывалась фотка ?
http://shpargalkablog.ru/2014/02/gallery.html
http://shpargalkablog.ru/2013/01/gallery-foto.html
<iframe src="//img.youtube.com/vi/xFa2_PVMeDQ/mqdefault.jpg" allowfullscreen="" frameborder="0"></iframe>
И зачем накладывать на iframe картинку: если человек щелкнул по миниатюре, то он планирует посмотреть следующее видео, а не картинку к нему. Скорость загрузки не станет выше, если ему сначала предлагать картинку на последующие видео. Только при загрузке всей страницы это важно.
http://joombra.ru/img/trouble.PNG
#video12 {
position: relative;
margin-bottom: 110px;
padding-bottom: 60%; /* высота */
}
#video12 iframe {
position: absolute;
width: 60%;/* ширина */
height: 100%;
left: 20%;/* по центу */
}
var IMG = document.querySelectorAll('#video12 span'),
IFRAME = document.querySelector('#video12 iframe');
ругаются старые движки, например при интеграции ссылок на страницу с этим отображение в софт
Фиксится так:
1 подключением JQuery
2 var IMG = $('#video12 img'),
IFRAME =$('#myvframe');
3 IFRAME.attr('src', '//www.youtube.com/embed/' + idIMG + '?rel=0&autoplay=1');
Отключить громкость:
player.mute();
На всю ширину сайта:
width: 100%;
Пример:
<style>
#Youtube {
width: 100%;
height: 20em;
}
</style>
<script src="//www.youtube.com/player_api"></script>
<script>
var player;
function onYouTubePlayerAPIReady() {
player = new YT.Player('Youtube', {
events: {'onReady': onPlayerReady}
});
}
function onPlayerReady(event) {
player.mute();
}
</script>
<iframe src="//www.youtube.com/embed/JMJXvsCLu6s?rel=0&enablejsapi=1&autoplay=1" frameborder="0" allowfullscreen id="Youtube"></iframe>
Демонстрация:
https://jsfiddle.net/NMitra/u7g252yx/1/