レスポンシブデザインで動画を使う場合、ユーザはyoutubeやvimeoからはめ込みURLを取ってくるのが一般的だと思う。
その場合の固定されてるサイズを、可変にする方法。
参考にしたのはこちら。
http://css-tricks.com/NetMag/FluidWidthVideo/demo.php
(function($){ var $myVideos = $("iframe[src^='http://player.vimeo.com'], iframe[src^='http://www.youtube.com'], object, embed"), $myVideos.each(function() { $(this).attr('data-aspectRatio', this.height / this.width) .removeAttr('height') .removeAttr('width'); }); $(window).resize(function() { $myVideos.each(function() { var $this = $(this); var newWidth = $this.parent("div.vimeo").width(); $this.width(newWidth).height(newWidth * $this.attr('data-aspectRatio')); }); }).resize(); })(jQuery);
今回のポイントは2つ。
1)jQueryセレクタで、^=って使ったことなかった。
便利だな、覚えておこう。
(この場合の iframe[src^=’http://.. は、http://..から初めまる、という意味。)
2)iframeにattiribute data-aspectRatioを付与して縦横比率を持たせている。
HTML5で追加された、独自データ属性を使っている。
http://www.html5.jp/tag/attributes/data.html
値をもたせる場所に悩むことがあったが、これで解決するな。
勉強になりました。感謝。