これはかなり堅牢なソリューションです。しかし、私はJSが苦手なので、完全なハックジョブです. 自由に反復または発散してください。
それがまともに行うこと:
- リンクを押すと、「その場で」YouTubeビデオを表示/非表示にします
- 概念実証としての楽しい背景ぼかしなど
- 流動的な幅のフレームには、ビデオが適合するため、流動的な幅のビデオが含まれています
悪いこと:
- これ
.videoWrapper
は、ビデオの高さに合わせて自動的にサイズ調整されます (vid に適合するため)。これは理想的ではありません。なぜなら、コンテナーを拡大/縮小して、前後に保持されたコンテンツに合わせてコンテナーを拡大/縮小できると便利だからです (ビデオの最大の高さで貼り付けます)
- ビデオが非表示になっても再生が停止しない
- 他に気づくこと。
作業例: http://codepen.io/jonamar/pen/JAfqc
jQuery とhttp://fitvidsjs.comが必要です
HTML
<section class="videoWrapper">
<!-- the <h1> and <a> get replaced -->
<h1>Watch the best video ever</h1>
<a class="control play" href="#">Play</a>
<a class="control hide" href="#">Hide</a>
<iframe width="560" height="315" src="http://www.youtube.com/embed/5SjtrUYRYx4?rel=0" frameborder="0" allowfullscreen=""></iframe>
</section>
CSS
* {-webkit-transition-duration: 1s;}
.videoWrapper {
margin: 0 auto;
width: 40%;
padding: 20px;
background: #eee;
}
iframe, .hide {display: none;}
.showVideo {background: #444;}
.showVideo h1{
color: transparent;
text-shadow: 0 0 6px rgba(0,0,0,0.60);
}
.showVideo a {color: white;}
JS
$(document).ready(function () {
$('.control').click(function () {
$('.videoWrapper iframe').toggle();
$('.videoWrapper .play').toggle();
$('.videoWrapper .hide').toggle();
var showVideo = $('.videoWrapper').hasClass('showVideo');
if (showVideo === true) {
$('.videoWrapper').removeClass('showVideo');
} else {
$('.videoWrapper').addClass('showVideo');
}
});
$(".videoWrapper").fitVids();
});