以前投稿した、同一ページ内でyoutubeを複数設置したときに、同時再生をさせないようにするの別パターンです。
動画をサムネイルクリックで切り替えるようにします。
サンプルコード
YouTubeプレーヤーを操作する必要があるので、YouTube Player APIを使用しています。
YouTube動画をサムネイルクリックで切り替えるデモページ
HTML
<div id="player"></div> <ul id="thumbnail"></ul>
CSS
#player { float: left; } #thumbnail { float: right; width: 160px; } #thumbnail li { margin-bottom: 7px; } #thumbnail li img { width: 100%; height: auto; }
JavaScript
// プレーヤーのサイズを指定 var ytWidth = 640; var ytHeight = 390; // 埋め込むyoutubeのIDを指定 var ytData = [ { id: 'S_ucMS7sxx8' }, { id: 'aIRAOr8WbXY' }, { id: 'RLZez82cp4w' }, { id: 'ZZ2IkhhXAEo' } ]; ytBaseUrl = 'https://www.youtube.com/embed/'; // サムネイル画像の埋め込み準備 var thumbInsert = ''; for(var i = 0; i < ytData.length; i++) { thumbInsert += '<li><a href="' + ytBaseUrl + ytData[i]['id'] + '">'; thumbInsert += '<img src="http://img.youtube.com/vi/' + ytData[i]['id'] + '/mqdefault.jpg" alt="" />'; thumbInsert += '</a></li>'; } var ytPlayer; // YouTube Player APIを読み込む var tag = document.createElement('script'); tag.src = "https://www.youtube.com/iframe_api"; var firstScriptTag = document.getElementsByTagName('script')[0]; firstScriptTag.parentNode.insertBefore(tag, firstScriptTag); // API読み込み後にプレーヤーを埋め込む function onYouTubeIframeAPIReady() { ytPlayer = new YT.Player('player', { height: ytHeight, width: ytWidth, videoId: ytData[0]['id'] }); } // 動画の再生 function play(ytId, seekTime) { ytPlayer.loadVideoById(ytId, seekTime); } $(function() { // サムネイル画像の埋め込み $('#thumbnail').append(thumbInsert); $(document).on('click', '#thumbnail a', function() { ytId = $(this).attr('href').replace(ytBaseUrl, ''); play(ytId, 0); return false; }); });
コメントが承認されるまで時間がかかります。