c0d*_*rkr 13 javascript css reactjs
我正在尝试构建一个包含全屏背景图像的简单登录页面,该内容将在内容加载后立即播放.
有没有办法在React中使用React或CSS来做到这一点?
我已经尝试过使用npm模块react-drive-in,但我不能为我的生活找出如何在视频上加载我的React组件.视频不断加载我的其他组件.
Mr_*_*ius 13
实际上,我能够让Trevor的代码在我的项目中运行得很好.我必须向源元素添加一个结束标记,就像这样.
<video id="background-video" loop autoPlay>
<source src="http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4" type="video/mp4" />
<source src="http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4" type="video/ogg" />
Your browser does not support the video tag.
</video>
Run Code Online (Sandbox Code Playgroud)
另请注意,'autoplay'应更改为'autoPlay'或React会向您发出警告,而不是自动播放视频.除了这两个更改之外,复制和粘贴代码应该可以正常工作.
ES6/Babel示例:
'use strict';
import React, {Component} from 'react';
class Example extends Component {
constructor (props) {
super(props);
this.state = {
videoURL: 'http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4'
}
}
render () {
return (
<video id="background-video" loop autoPlay>
<source src={this.state.videoURL} type="video/mp4" />
<source src={this.state.videoURL} type="video/ogg" />
Your browser does not support the video tag.
</video>
)
}
};
export default Example;
Run Code Online (Sandbox Code Playgroud)
小智 7
import sample from './sample.mp4';
<video className='videoTag' autoPlay loop muted>
<source src={sample} type='video/mp4' />
</video>
Run Code Online (Sandbox Code Playgroud)
感谢您将“自动播放”从Mr_Antivius更改为“自动播放”的说明。这是在React中播放视频的另一种方法。这个对我有用。请记住,sample.mp4文件与JS文件位于同一目录中。
我认为这样的事情会起作用:
#background-video{
height: 100%;
width: 100%;
float: left;
top: 0;
padding: none;
position: fixed; /* optional depending on what you want to do in your app */
}
Run Code Online (Sandbox Code Playgroud)
<video id="background-video" loop autoplay>
<source src="http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4" type="video/mp4">
<source src="http://www.sample-videos.com/video/mp4/720/big_buck_bunny_720p_1mb.mp4" type="video/ogg">
Your browser does not support the video tag.
</video>
Run Code Online (Sandbox Code Playgroud)
根据您使用的视频或客户端屏幕的大小,您可能会遇到比例问题。
所以你可能需要看看这篇文章。
还要考虑当今屏幕的大小。如果有人有一个大得离谱的宽屏或类似的东西,你会怎么做?除非您的视频具有相同的分辨率,否则视频将无法适合屏幕。
我并不是说视频是个坏主意。我只是想让你意识到这些问题!
祝你好运!
小智 6
下面的代码还设置了一张海报。这是在视频加载时或在无法播放视频的浏览器中显示的。
import clip from './clip.mp4';
import Poster from './Poster.png';
<video autoPlay loop muted poster={Poster}>
<source src={clip} type='video/mp4' />
<source src={clip} type="video/ogg" />
</video>
Run Code Online (Sandbox Code Playgroud)
但是,仅在较大的设备上显示背景视频是一个很好的做法。因为在手机上背景视频可能会占用过多的系统资源并影响性能。因此,为移动设备添加媒体查询并设置display:block。
归档时间: |
|
查看次数: |
23735 次 |
最近记录: |