Blogブログ

Day: April 21, 2013

サイズ可変の動画はめ込みiframe

レスポンシブデザインで動画を使う場合、ユーザは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 値をもたせる場所に悩むことがあったが、これで解決するな。 勉強になりました。感謝。