Jump to content


Photo
- - - - -

[Рецепт] Анимируем тумбы от YouTube

youtube

No replies to this topic

#1 CB9TOIIIA

CB9TOIIIA
  • Administrators
  • User rate: 230.6
  • posts: 3680
  • topics: 235

Posted 18 February 2016 - 13:44

Всем привет! Решил написать рецепт к своему элементу  YouTubeApi - получить и вывести всю информацию о ролике
 
9etAJCa.gif
 
В общем наткнулся тут на JS очень интересный: PreViewTube

 

Эффект можно сделать по наведению или постоянный, но лучше наверно оставить по умолчанию - при :hover.
 
Прикрутить довольно просто:
 
В элементе youtubeapi.php 43 строку изменяем (класс добавим):
 

echo "<a class='thumb' href='".$itemurl."'><img class='preViewTube' src=".$smallimg."></a><br>";

Ну и немного изменим код, т.к. по умолчанию тумбы получают по API среднее качество - а нужно цифровое значение.
 

$smallimg = $details['snippet']['thumbnails']['medium']['url'];
$smallimgzero = "https://i.ytimg.com/vi/".$videoID."/0.jpg";

Ну и вывод конечно: 

echo "<a class='thumb' href='".$itemurl."'><img class='preViewTube'  src=".$smallimgzero."></a><br>";

Полный код класса (кому лень):
 
 

Spoiler

 
Далее где удобно подключаем JS - например в template.js (J!Blank):
 
Мой сжатый вариант библиотеки:

!function(t){t.fn.PreViewTube=function(e){var n=t.extend({interval:500,mode:"hover"},e);return this.each(function(){var e,r=t(this),a=r.attr("src"),c=a.match(/(\w*)\.jpg$/);if("default"==c[1])var i=1;else var i=parseInt(c[1]);"constant"==n.mode?e=setInterval(function(){3==i?i=0:i++,r.attr("src",a.replace(/(\d\.jpg|\w*\.jpg)$/,+i+".jpg"))},n.interval):r.hover(function(){e=setInterval(function(){3==i?i=1:i++,r.attr("src",a.replace(/(\d\.jpg|\w*\.jpg)$/,+i+".jpg"))},n.interval)},function(){clearInterval(e)})})}}(jQuery);
$('.someSelector').PreViewTube();

Пример: 

vLrfa7F.gif
 
P.S. Комментарий жены - ух ты ... эффект такой же как у хмнушных сайтов  (blush)  :)) 

Edited by CB9TOIIIA, 18 February 2016 - 13:59.

  • 4





Click to return to top of page in style!