动态加载内容上的自定义 video-js 宽度和高度

Posted

技术标签:

【中文标题】动态加载内容上的自定义 video-js 宽度和高度【英文标题】:Custom video-js width and height on Dynamically Loaded Content 【发布时间】:2016-09-03 21:55:44 【问题描述】:

我在foundation reveal 内是dynamically loading video-js,每次加载时我都必须触发宽度和高度。奇怪的是,一旦我在页面上加载了一个视频,无论如何它都不会再改变它,它只会坚持一个尺寸。

这是我的代码

    $(document).on('opened.fndtn', '[data-reveal]', function () 
        if($('.sd-video').length) 
            console.log('SD Detected');
            videojs($('.sd-video')[0], "width": 640,"height": 480, function() );
        
        if($('.hd-video').length) 
            console.log('HD Detected');
            videojs($('.hd-video')[0], "width": 1287,"height": 720, function() );
        
    );
    $(document).on('closed.fndtn', '[data-reveal]', function () 
        $('#'+$(this).attr('id')).html('');
    );

无论我尝试什么,一旦加载 HD,SD 将不会调整大小,反之亦然。有什么想法吗?

【问题讨论】:

【参考方案1】:

您可以尝试使用 CSS 值进行更改。播放器是否加载都没有关系。即使在播放视频时,您也可以更改尺寸。

例如,您可以查看此示例https://codepen.io/caglar62/pen/BebKMX。

您可以像这样一键更改视频播放器的尺寸

<div class="container">
    <video id="my-video" class="video-js" controls preload="auto"   ></video>
    <input type="button" value="Click me" onclick="changeSize()">
</div>    

<script>
   function changeSize()
      document.getElementById("my-video").style.width = "200px";
   
</script>

这只是一个简单的示例,但您可以使用相同的方法编写更复杂的算法来满足您的目的。

【讨论】:

以上是关于动态加载内容上的自定义 video-js 宽度和高度的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的自定义 UITableViewCell 宽度在初始加载时不正确?

谷歌地图上的自定义标记如下图

wpf 如何动态的设置Grid宽和高.

带有圆角而不是 100% 屏幕宽度的自定义片段对话框

UICollectionView 上的自定义动画重新加载数据

相对布局中的自定义视图问题