Bilibili 视频适应页面宽度

哔哩哔哩视频嵌入问题

之前在一篇文章中想要插入哔哩哔哩视频,从B站视频下方点击分享按钮获取 iframe 嵌入代码,形式如下

<iframe src="//player.bilibili.com/player.html?aid=24220173&bvid=BV1KW411N7vE&cid=40606466&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe>

如果直接将代码插入到文章内部,会有 2 个很明显的问题。

一、视频并不能自动适应网页宽度,嵌入后视频窗口太小,不适合观看

二、直接嵌入的视频会自动播放弹幕,如果弹幕较多,会遮挡视频,影响观感

所以,想在文章中嵌入哔哩哔哩视频,并达到适宜观看的目的,就必须解决上面两个问题。

哔哩哔哩视频嵌入问题解决办法

哔哩哔哩视频适应网页宽度

视频太小的原因是宽高不够,之前我的解决办法是直接在嵌入代码中设置视频的宽高。但是这么做的缺点也很明显,固定了视频的宽高后,只有网页适宜观看,移动端的观感就非常不好,大小不合适。

但是回头想一想,为什么这个主题嵌入 YouTube 视频可以自动适应电脑端和移动端呢?肯定是有相应的调节代码。于是就在主题的 css 代码中寻找相应的样式代码。最终发现视频大小调节代码在 _sass\minimal-mistakes\_utilities.scss 中。点击查看代码

以下为代码内容。

/*
   Responsive Video Embed
   ========================================================================== */

.responsive-video-container {
  position: relative;
  margin-bottom: 1em;
  padding-bottom: 56.25%;
  height: 0;
  overflow: hidden;
  max-width: 100%;

  iframe,
  object,
  embed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }
}

既然主题 css 内包含等比缩放 css 类,那么不论是用 iframe 嵌入什么视频,都可以自动适应宽度。只需要像下面一样,用 responsive-video-container 类的块内容把 iframe 包起来即可。

<div class="responsive-video-container">
  <iframe src="//player.bilibili.com/player.html?bvid=&page=1&as_wide=1&high_quality=1&danmaku=0" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe>
</div>

关闭哔哩哔哩视频弹幕

如果你仔细观察,就会发现,上面我所列出的视频 iframe 嵌入代码和直接获取的代码稍有区别。

直接获取的代码是这样的:

<iframe src="//player.bilibili.com/player.html?aid=497646355&bvid=BV1tK411L7W5&cid=176555911&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe>

我所列出的代码时这样的

<iframe src="//player.bilibili.com/player.html?bvid=&page=1&as_wide=1&high_quality=1&danmaku=0" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe>

其中最重要的,用来关闭弹幕的代码就是 danmaku。其取值为 1 代表开启弹幕,取值为 0 代表关闭弹幕。

其他 iframe 链接参数

除上面提到的 danmaku 之外,iframe 嵌入代码还有视频清晰度、开始播放时间等其他的参数可以配置。

视频测试

Bilibili 视频

参考文章