0

問題 tumblr がビデオの幅を最大 500 に制限していることを知っています。助言がありますか?

4

2 に答える 2

2

このコードは便利な出発点でしたが、embed タグのサイズも変更していないため、すべてのブラウザーで機能するとは限りません。

<script type="text/javascript">
    $(document).ready(function() {
          var embedTag;
          $('.video').each(function(index) {
               $( this ).contents().each( function ( index ) {
                    if ($(this).is('object') || $(this).is('embed') || $(this).is('iframe')) {
                         var orgWidth = $(this).attr('width');
                         var orgHeight = $(this).attr('height');
                         var scale = orgHeight/orgWidth;
                         var targetWidth = 474;
                         var targetHeight = targetWidth * scale;
                         $(this).attr('width', targetWidth);
                         $(this).attr('height', targetHeight);
                         $(this).find('embed').attr('width', targetWidth);
                         $(this).find('embed').attr('height', targetHeight);
                    }
               });
          });
     });
    </script>

EDIT:他の要素に埋め込まれているものは何でも、あなたのビデオ/メディアの場合に備えて、さらなる改訂:

<script type="text/javascript">
    $(document).ready(function() {
          var embedTag;
          $('.video, .media').each(function(index) {
               $( this ).find('object, embed, iframe').each( function ( index ) {
                    var orgWidth = $(this).attr('width');
                    var orgHeight = $(this).attr('height');
                    var scale = orgHeight/orgWidth;
                    var targetWidth = 474;
                    var targetHeight = targetWidth * scale;
                    $(this).attr('width', targetWidth);
                    $(this).attr('height', targetHeight);
                    $(this).find('embed').attr('width', targetWidth);
                    $(this).find('embed').attr('height', targetHeight);
               });
          });
     });
    </script>
于 2011-02-14T17:36:13.927 に答える
0

Tumblr 用に設計/開発したテーマ (ridiculouslyawesome.com) でも同じことをしなければなりませんでした。Tumblr が課すと思われる最大幅 500px を回避するために、ページ内のすべての object/embed/iframe タグを見つけて、テーマに合わせて適切にサイズ変更する小さな JavaScript ハックを思い付きました。この例では jQuery を使用していますが、好きな JS フレームワークに変更できます。

$(document).ready(function() {
      var embedTag;
      $('div.video_container').each(function(index) {
           $( this ).contents().each( function ( index ) {
                if ($(this).is('object') || $(this).is('embed') || $(this).is('iframe')) {
                     var orgWidth = $(this).attr('width');
                     var orgHeight = $(this).attr('height');
                     var scale = orgHeight/orgWidth;
                     var targetWidth = 960;
                     var targetHeight = targetWidth * scale;
                     $(this).attr('width', targetWidth);
                     $(this).attr('height', targetHeight);
                }
           });
      });
 });

これまでのところ、これは、テストしたすべてのブラウザーで私のテーマに対してかなりうまく機能しています。うまくいけば、それもあなたにとってもうまくいくでしょう。問題が発生した場合はお知らせください。

ライアン

于 2011-01-25T17:01:50.730 に答える