Tay*_*tin 4 css iframe reactjs
我正在将 reactplayer 用于使用 iframe 的 youtube 视频。我正在尝试将视频缩放到我的 div 并且我希望它具有响应性。
我在 ReactPlayer 上放了一个width和heightat 100%,我有一个包装 div,我在上面放了高度和宽度,但是 reactplayer 不适合这个 div。无论我如何调整屏幕大小,它都停留在 150px 的高度。
<div className="video-wrapper>
<ReactPlayer
width="100%"
height="100%"
url="https://youtu.be/BGhqlJnFIXU"
controls
muted
config={{
youtube: {
playerVars: { showinfo: 1 }
}
}}
/>
</div>
Run Code Online (Sandbox Code Playgroud)
.css
.video-wrapper {
height: 100%;
width: 100%;
min-height: 225px;
}
Run Code Online (Sandbox Code Playgroud)
小智 13
为了强制反应播放器完全响应,我做了以下操作:
CSS
.player-wrapper {
position: relative;
padding-top: 56.25%; /* 720 / 1280 = 0.5625 */
}
.react-player {
position: absolute;
top: 0;
left: 0;
}Run Code Online (Sandbox Code Playgroud)
JSX
import React from "react";
import ReactPlayer from "react-player";
import "./Player.css";
const Player = () => (
<div className="player-wrapper">
<ReactPlayer
url="https://youtu.be/3eLrINg3O2Q"
className="react-player"
playing
width="100%"
height="100%"
controls={false}
/>
</div>
);
export default Player;Run Code Online (Sandbox Code Playgroud)
小智 8
这可以通过进一步扩展您的 CSS 轻松实现。由于大多数视频都是以 16:9 拍摄的,因此遵循Chris Coyier 的本指南将使该过程轻松实现。
由于您使用的是 React-Player,我正在处理位于他们演示页面上的内容。
.player-wrapper {
width: auto; // Reset width
height: auto; // Reset height
}
.react-player {
padding-top: 56.25%; // Percentage ratio for 16:9
position: relative; // Set to relative
}
.react-player > div {
position: absolute; // Scaling will occur since parent is relative now
}
Run Code Online (Sandbox Code Playgroud)
为什么有效?
TL;DR-百分比填充基于宽度。通过将元素的高度设置为 0,我们可以利用 'padding-top' 的百分比来完美地缩放内容。
生成 16:9 的百分比
(9 / 16) * 100 = 56.25
小智 5
使其响应的最简单方法是将宽度添加为 100%
<ReactPlayer
controls
pip
width="100%"
url={_post.videolink}
/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14212 次 |
| 最近记录: |