图像并不是唯一需要在我们的灵活网格中良好播放的媒体。与视频相比,图像很简单!当您设置 <img>
的 width
并将其 height
值覆盖为 auto
时,图像将自然地保留其纵横比。这对于 <video>
也是如此,但说实话,如今网络上的大多数视频都是通过 <video>
标签直接嵌入页面的。
举个例子,我尝试在小屋里这样做,最后放弃了,因为 Vimeo Pro 更加实用(适用于任何设备、不错的播放器、便宜、快速流媒体等)。您不会(通常)通过 <video>
标签嵌入 Vimeo 视频,而是使用他们提供的嵌入代码,这是一个 <iframe>
。YouTube 和许多其他流行的视频服务也使用这种方式。
iframe 在调整大小方面不会像图像那样保持其纵横比。但是,我们可以通过测试其宽度和高度并除以它们来找出其原始纵横比。然后,我们可以使用这些信息创建一个具有相同纵横比的盒子(使用填充技巧,参见 Uncle Dave’s Ol’ Padded Box),并将 iframe 绝对定位在其中。参见:Intrinsic Ratios for Videos。这样,当我们调整宽度和高度时,视频基本上就像图像一样,尊重其纵横比。
或者,我们可以使用 FitVids.js(我帮助编写了它)来自动化整个过程(它实际上只做我描述的,只是自动完成)。我们将此库包含在我们的 global.js 中,与我们对 prism.js 所做的一样进行连接。我们第一次需要 jQuery,因此我们从 ScriptSrc 获取该链接,并在我们的 global.js 之前的页脚中链接它。然后在我们的 global.js 中,我们调用 FitVids。完成。
“适用于任何设备、不错的播放器、便宜、快速流媒体等”。
实际上,它一直在我 Android 设备上正常工作,直到您转到 Vimeo,现在它抱怨说我需要使用“提供原生 H.264 支持的浏览器或安装 Flash”,我已经尝试了 4 种不同的浏览器(包括 Android Stock)。仅供参考,我有一部配备 Android 2.3.4 的摩托罗拉 Photon…
否则,我真的很喜欢所有视频,非常感谢!
有趣。我需要进行更多 Android 测试。我无法想象 Vimeo 决定不再支持 Android…也许是我可以更改的东西或其他问题。
我将隐藏这条评论,因为它是一个特定的临时技术问题。
我有同样的手机,它从不允许我播放 Vimeo 视频,以前我可以通过点击 URL 来播放 YouTube 视频(例如,当有人在 Facebook 上分享 YouTube 链接时),但现在我必须严格通过 YouTube 应用程序播放它们,否则它们不会播放。我认为问题只出在这部手机上?
嘿 Chris,我有一个问题要问你,我已经尝试按照你的视频做,并在我的本地主机上使用 MAMP,但使用免费版。问题是,如果在我的 global.js 中我导入 FitVids.js,当我检查控制台中的内容时,什么也不会发生。我有一个使用 . 的 YouTube 视频嵌入。如果我将使视频响应的 js 代码复制粘贴到控制台中,如下所示
控制台会返回 $(article).fitVids(); 不是函数。我已经检查过我的 Jquery 库是否已导入,它位于顶部,并且存在。
奇怪的是,如果我不使用 codekit 来告诉我的 global.js 文件导入 FitVids.js,而是手动在 footer.php 中导入,在从 Google 导入 jQuery 库之后,它就可以工作,只有当我在控制台中再次粘贴代码时。
你是否知道这是因为我没有设置本地 URL,就像你所做的那样?相反,我使用的是 localhost:8888/static/?
非常感谢。
尝试使用 $(‘article’).fitVids();
您缺少围绕单词 article 的引号…
我已经尝试过,没有任何变化。我使用了与 Chris 在他的视频中相同的代码,在他的情况下它可以工作,在我的情况下却不行。我已经花了 4 个小时在上面,但仍然存在问题。
对于将来遇到此问题的人…我花了 30 分钟试图弄清楚为什么控制台会记录“Uncaught TypeError: undefined is not a function”。最终,我调用了函数为
它缺少一个大写字母。=( 总是那些小问题导致了麻烦吧?哈哈
@Eduard
尝试使用类或 ID
您是否最终弄清楚是什么导致了黑条?我遇到了类似的问题。由于某种原因,fitVids 计算的填充值为 75%,而不是 16:10 视频的 62.5%。
我认为在这个视频的情况下,它本身确实包含黑条。或者,来自 Vimeo 的纵横比导致了黑条,即使没有 FitVids。诀窍是在没有 FitVids 的情况下使它正确显示(调整高度/宽度,将其放入 [CodePen](http://codepen.io/) 中玩一下),然后它将在使用 FitVids 时也很好地调整大小。除非您发现情况并非如此,否则请在 [repo](https://github.com/davatron5000/FitVids.js/issues?direction=desc&sort=created&state=open) 中打开一个问题。