内置插件挂载配置
所有的内置UI插件都支持position
和index
两个保留配置项,用于指定插件的挂载位置和在挂载的父节点中的定位顺序
position配置
position用于指定UI插件的dom挂载位置,目前定义的位置如下图所示
控制栏为默认布局
控制栏为flex布局
- 插件在不指定position,也不指定root参数的情况下,默认挂载在根节点root(即player.root)下;
- ROOT_TOP、ROOT_RIGHT、ROOT_LEFT会在播放器失去焦点的时候自动隐藏
- 手机小屏flex布局下,中间位置自适应,一般中间位置都是进度条
枚举值
position的枚举值如下
Plugin.POSITIONS = {
ROOT: 'root', //挂载在根节点上
ROOT_LEFT: 'rootLeft', //挂载在播放器容器的左侧边栏
ROOT_RIGHT: 'rootRight', //挂载在播放器容器的右侧边栏
ROOT_TOP: 'rootTop', //挂载在播放器容器的顶部边栏
CONTROLS_LEFT: 'controlsLeft', //挂载在播放器控制栏的左侧
CONTROLS_RIGHT: 'controlsRight', //挂载在播放器控制栏的右侧
CONTROLS_CENTER: 'controlsCenter' //挂载在播放器控制栏的中间控制条位置
}
使用demo
全屏切换按钮默认位置是在控制栏的右侧第一的位置,如下图1;如果需要将该按钮移动到左侧第一的位置,达到图2的效果
图1 全屏按钮默认位置
图2 全屏按钮定位到左侧
具体实现demo如下
import Player, { Plugin } from 'xgplayer'
const player = new Player({
...,
fullscreen: {
position: Plugin.POSITIONS.CONTROLS_LEFT, // 定位在控制栏左侧
index: 2 // 位置索引为2
}
})
控制栏位置定制
控制栏和画面分离
播放默认控制栏是和视频画面重合的,如图1所示; 如果需要控制栏和画面分离,不遮挡画面,目前提供了一个配置项margincontrols
, 达到如图2的效果
图1 默认重叠
图2 分离
除了以上的配置,也支持控制栏挂载到播放器容器以外的任意位置,具体效果和实现方式详见内置插件->controls