构造函数
new ChaptersTrackMenuItem(player, optionsopt)
创建此类的实例。
名称 | 类型 | 属性 | 描述 |
---|---|---|---|
播放器 | Player | 此类应附着到的 | |
选项 | Object | <可选> | 播放器选项的键/值存储。 |
继承
成员
(protected) controlText_
方法
$(selector, contextopt) → {Element|null}
查找匹配selector
的单个DOM元素。这可以在Component
的contentEl()
中或另一个自定义上下文中进行。
名称 | 类型 | 属性 | 默认 | 描述 |
---|---|---|---|---|
选择器 | 字符串 | 一个有效的CSS选择器,将传递给 | ||
上下文 | Element | | <可选> | this.contentEl() | 用于查询的DOM元素。也可以是选择器字符串,在这种情况下,第一个匹配的元素将用作上下文。如果缺少,则使用`this.contentEl()`。如果`this.contentEl()`不返回任何内容,则回退到`document`。 |
- 参见
找到的DOM元素,或null
- 类型:
- Element |
null
$$(selector, contextopt) → {NodeList}
查找匹配selector
的所有DOM元素。这可以在Component
的contentEl()
中或另一个自定义上下文中进行。
名称 | 类型 | 属性 | 默认 | 描述 |
---|---|---|---|---|
选择器 | 字符串 | 一个有效的CSS选择器,将传递给 | ||
上下文 | Element | | <可选> | this.contentEl() | 用于查询的DOM元素。也可以是选择器字符串,在这种情况下,第一个匹配的元素将用作上下文。如果缺少,则使用`this.contentEl()`。如果`this.contentEl()`不返回任何内容,则回退到`document`。 |
- 参见
找到的DOM元素列表
- 类型:
- NodeList
addChild(child, optionsopt, indexopt) → {Component}
在当前Component
中添加一个子Component
。
名称 | 类型 | 属性 | 默认 | 描述 |
---|---|---|---|---|
子项 | string | | 要添加的子项的名称或实例。 | ||
选项 | Object | <可选> | {} | 将传递给子项的子项的选项的键/值存储。 |
索引 | 数字 | <可选> | this.children_.length | 尝试添加子项的索引。 |
作为子项添加的Component
。使用字符串时,Component
将由该过程创建。
- 类型:
- Component
addClass(…classesToAdd)
向Component
的元素添加CSS类名。
名称 | 类型 | 属性 | 描述 |
---|---|---|---|
要添加的类 | 字符串 | <可重复> | 一个或多个要添加的CSS类名。 |
blur()
从此组件中移除焦点
buildCSSClass() → {string}
构建默认的DOM className
。
此对象的DOM className
。
- 类型:
- 字符串
cancelAnimationFrame(id) → {number}
取消传递给Component#requestAnimationFrame (rAF) 的排队回调。
如果您通过Component#requestAnimationFrame排队了一个rAF回调,请使用此函数而不是window.cancelAnimationFrame
。如果您不这样做,您的清理监听器将不会在Component#dispose之前被清除!
名称 | 类型 | 描述 |
---|---|---|
ID | 数字 | 要清除的rAF ID。Component#requestAnimationFrame的返回值。 |
- 参见
返回已清除的rAF ID。
- 类型:
- 数字
cancelNamedAnimationFrame(name)
如果存在,取消当前的命名动画帧。
名称 | 类型 | 描述 |
---|---|---|
名称 | 字符串 | 要取消的requestAnimationFrame的名称。 |
children() → {Array}
获取所有子组件的数组
子项
- 类型:
- 数组
clearInterval(intervalId) → {number}
清除通过window.setInterval
或Component#setInterval创建的间隔。如果您通过Component#setInterval设置了一个间隔,请使用此函数而不是window.clearInterval
。如果您不这样做,您的清理监听器将不会在Component#dispose之前被清除!
名称 | 类型 | 描述 |
---|---|---|
intervalId | 数字 | 要清除的间隔ID。Component#setInterval或 |
- 参见
返回已清除的间隔ID。
- 类型:
- 数字
clearTimeout(timeoutId) → {number}
清除通过window.setTimeout
或Component#setTimeout创建的超时。如果您通过Component#setTimeout设置了一个超时,请使用此函数而不是window.clearTimeout
。如果您不这样做,您的清理监听器将不会在Component#dispose之前被清除!
名称 | 类型 | 描述 |
---|---|---|
timeoutId | 数字 | 要清除的超时ID。Component#setTimeout或 |
- 参见
返回已清除的超时ID。
- 类型:
- 数字
contentEl() → {Element}
返回Component
的DOM元素。子项将插入到此处。这通常与Component#el中返回的元素相同。
此Component
的内容元素。
- 类型:
- 元素
controlText(textopt, elopt) → {string}
获取或设置用于ClickableComponent
控件的本地化文本。
名称 | 类型 | 属性 | 默认 | 描述 |
---|---|---|---|---|
文本 | 字符串 | <可选> | 元素的控制文本。 | |
元素 | 元素 | <可选> | this.el() | 要设置标题的元素。 |
- 获取时的控制文本
- 类型:
- 字符串
createControlTextEl(elopt) → {Element}
在此ClickableComponent
上创建控制文本元素
名称 | 类型 | 属性 | 描述 |
---|---|---|---|
元素 | 元素 | <可选> | 控制文本的父元素。 |
创建的控制文本元素。
- 类型:
- 元素
createEl(typeopt, propsopt, attrsopt) → {Element}
创建“MenuItem”的DOM元素
名称 | 类型 | 属性 | 默认 | 描述 |
---|---|---|---|---|
type | 字符串 | <可选> | li | 元素的节点类型,实际未使用,始终设置为 |
属性 | Object | <可选> | {} | 应在元素上设置的属性对象 |
attrs | Object | <可选> | {} | 应在元素上设置的属性对象 |
创建的元素。
- 类型:
- 元素
currentDimension(widthOrHeight) → {number}
获取组件元素的计算宽度或高度。
使用window.getComputedStyle
。
名称 | 类型 | 描述 |
---|---|---|
宽度或高度 | 字符串 | 包含“width”或“height”的字符串。您想获取的任何一个。 |
请求的维度,如果该维度未设置,则为0。
- 类型:
- 数字
currentDimensions() → {Component~DimensionObject}
获取一个包含组件元素计算宽度和高度值的对象。
使用window.getComputedStyle
。
组件元素的计算维度。
currentHeight() → {number}
获取组件元素的计算高度。
使用window.getComputedStyle
。
组件元素的计算高度。
- 类型:
- 数字
currentWidth() → {number}
获取组件元素的计算宽度。
使用window.getComputedStyle
。
组件元素的计算宽度。
- 类型:
- 数字
dimension(widthOrHeight, numopt, skipListenersopt) → {number|undefined}
获取或设置Component
元素的宽度或高度。这是Component#width和Component#height的共享代码。
需要了解的事项
- 如果宽度或高度是数字,这将返回以“px”为后缀的数字。
- 如果宽度/高度是百分比,这将返回以“%”为后缀的百分比
- 隐藏元素在使用
window.getComputedStyle
时宽度为0。此函数默认使用Component
的style.width
,并回退到window.getComputedStyle
。更多信息请参阅此处。 - 如果您想要组件的计算样式,请使用Component#currentWidth和{Component#currentHeight
名称 | 类型 | 属性 | 描述 |
---|---|---|---|
宽度或高度 | 字符串 | 8 'width' 或 'height' | |
num | number | | <可选> | 8 新维度 |
跳过监听器 | 布尔值 | <可选> | 跳过componentresize事件触发 |
获取时的维度,如果未设置则为0
- 类型:
- number |
undefined
dimensions(width, height)
同时设置Component
元素的宽度和高度。
名称 | 类型 | 描述 |
---|---|---|
宽度 | number | | 要设置 |
高度 | number | | 要设置 |
disable()
禁用此ClickableComponent
dispose(options)
销毁Component
及所有子组件。
名称 | 类型 | 描述 | ||||||
---|---|---|---|---|---|---|---|---|
选项 | Object | 属性
|
el() → {Element}
获取Component
的DOM元素
此Component
的DOM元素。
- 类型:
- 元素
(protected) emitTapEvents()
检测到触摸事件支持时发出“tap”事件。这用于通过轻触视频来支持切换控件。它们之所以启用,是因为否则每个子组件都会有额外的开销。
- Component#event:touchstart
- Component#event:touchmove
- Component#event:touchleave
- Component#event:touchcancel
- Component#event:touchend
enable()
启用此ClickableComponent
enableTouchActivity()
此函数在触摸事件发生时报告用户活动。这可以被任何希望触摸事件以其他方式运行的子组件关闭。
在触摸事件发生时报告用户触摸活动。用户活动用于确定何时显示/隐藏控件。对于鼠标事件来说这很简单,因为任何鼠标事件都应该显示控件。因此,我们捕获冒泡到播放器的鼠标事件,并在发生时报告活动。对于触摸事件,它不像touchstart
和touchend
切换播放器控件那么简单。因此触摸事件也无法在播放器层面帮助我们。
用户活动是异步检查的。因此可能发生的情况是,视频上的轻触事件关闭了控件。然后touchend
事件冒泡到播放器。如果它报告了用户活动,就会立即重新打开控件。我们也不希望完全阻止触摸事件冒泡。此外,touchmove
事件以及除轻触之外的任何事件,都不应重新打开控件。
- Component#event:touchstart
- Component#event:touchmove
- Component#event:touchend
- Component#event:touchcancel
focus()
将焦点设置到此组件
getAttribute(attribute) → {string|null}
获取Component
元素上的属性值。
名称 | 类型 | 描述 |
---|---|---|
属性 | 字符串 | 要获取其值的属性名称。 |
- 参见
- 请求的属性值。- 在某些浏览器中,如果属性不存在或没有值,则可能为空字符串 - 大多数浏览器在属性不存在或没有值时将返回null。
- 类型:
- string |
null
getChild(name) → {Component|undefined}
返回具有给定name
的子Component
。
名称 | 类型 | 描述 |
---|---|---|
名称 | 字符串 | 要获取的子 |
具有给定name
的子Component
或undefined。
- 类型:
- Component |
undefined
getChildById(id) → {Component|undefined}
返回具有给定id
的子Component
。
名称 | 类型 | 描述 |
---|---|---|
ID | 字符串 | 要获取的子 |
具有给定id
的子Component
或undefined。
- 类型:
- Component |
undefined
getDescendant(…names) → {Component|undefined}
返回遵循给定子代names
的子代Component
。例如,['foo', 'bar', 'baz']
会尝试在当前组件上获取'foo',在'foo'组件上获取'bar',在'bar'组件上获取'baz',如果其中任何一个不存在则返回undefined。
名称 | 类型 | 属性 | 描述 |
---|---|---|---|
名称 | ...Array.<string> | | <可重复> | 要获取的子 |
遵循给定后代names
的后代Component
或undefined。
- 类型:
- Component |
undefined
getIsAvailableToBeFocused(el) → {boolean}
确定此组件是否当前可见/启用/等...
名称 | 类型 | 描述 |
---|---|---|
元素 | HTMLElement | 代表组件的HTML元素。 |
如果组件当前可见且启用,则为true
。否则,为false
。
- 类型:
- 布尔值
getIsFocusable(el) → {boolean}
确定此组件是否可被视为可聚焦组件。
名称 | 类型 | 描述 |
---|---|---|
元素 | HTMLElement | 代表组件的HTML元素。 |
如果组件可以被聚焦,则为true
。否则,为false
。
- 类型:
- 布尔值
getPositions() → {Object}
检索组件元素的位置和大小信息。
一个包含boundingClientRect
和center
属性的对象。- boundingClientRect
:一个包含x
、y
、width
、height
、top
、right
、bottom
和left
属性的对象,表示元素的边界矩形。- center
:一个包含x
和y
属性的对象,表示元素的中心点。width
和height
设置为0。
- 类型:
- Object
handleClick(eventopt)
当ChaptersTrackMenuItem
被“点击”时调用此函数。有关点击的详细信息,请参阅ClickableComponent。
名称 | 类型 | 属性 | 描述 |
---|---|---|---|
event | Event | <可选> | 导致此函数被调用的 |
- event:tap
- event:click
handleKeyDown(event)
忽略菜单使用的键,但将其他键传递上去。有关调用此函数的情况,请参见ClickableComponent#handleKeyDown。
名称 | 类型 | 描述 |
---|---|---|
event | KeyboardEvent | 导致此函数被调用的 |
- event:keydown
handleKeyPress(event)
许多组件过去都有一个handleKeyPress
方法,这个命名很糟糕,因为它监听的是keydown
事件。现在这个方法名委托给handleKeyDown
。这意味着任何调用handleKeyPress
的人都不会发现他们的方法调用停止工作。
名称 | 类型 | 描述 |
---|---|---|
event | KeyboardEvent | 导致此函数被调用的事件。 |
handleLanguagechange()
处理ClickableComponent中播放器组件的语言更改
hasClass(classToCheck) → {boolean}
检查组件元素是否具有CSS类名。
名称 | 类型 | 描述 |
---|---|---|
classToCheck | 字符串 | 要检查的CSS类名。 |
- 如果
Component
具有该类,则为True。- 如果Component
不具有该类,则为False。
- 类型:
- 布尔值
height(numopt, skipListenersopt) → {number|undefined}
根据CSS样式获取或设置组件的高度。有关更详细的信息,请参见Component#dimension。
名称 | 类型 | 属性 | 描述 |
---|---|---|---|
num | number | | <可选> | 您要设置的高度,后缀为“%”、“px”或无。 |
跳过监听器 | 布尔值 | <可选> | 跳过componentresize事件触发器 |
获取时的高度,如果没有高度则为零
- 类型:
- number |
undefined
hide()
如果Component
的元素当前正在显示,则通过向其添加“vjs-hidden”类名来隐藏它。
id() → {string}
获取此Component
的ID
此Component
的ID
- 类型:
- 字符串
initChildren()
根据选项添加和初始化默认子Component
。
isDisposed() → {boolean}
确定此组件是否已销毁。
如果组件已销毁,则为true
。否则,为false
。
- 类型:
- 布尔值
localize(string, tokensopt, defaultValueopt) → {string}
给定英文字符串,将字符串本地化。
如果提供了令牌,它将尝试对提供的字符串进行简单的令牌替换。它查找的令牌看起来像{1}
,其中索引是令牌数组中的1-indexed。
如果提供了defaultValue
,则在提供的语言文件中未找到值时,将使用defaultValue
而不是string
。这在您希望为令牌替换提供描述性键但具有简洁的本地化字符串且不需要包含en.json
时非常有用。
目前,它用于进度条计时。
{
"progress bar timing: currentTime={1} duration={2}": "{1} of {2}"
}
然后像这样使用
this.localize('progress bar timing: currentTime={1} duration{2}',
[this.player_.currentTime(), this.player_.duration()],
'{1} of {2}');
输出类似:01:23 of 24:56
。
名称 | 类型 | 属性 | 描述 |
---|---|---|---|
字符串 | 字符串 | 要本地化的字符串和在语言文件中查找的键。 | |
令牌 | Array.<string> | <可选> | 如果当前项有令牌替换,请在此处提供令牌。 |
默认值 | 字符串 | <可选> | 默认为 |
本地化字符串,或者如果不存在本地化,则为英文字符串。
- 类型:
- 字符串
name() → {string}
获取Component
的名称。该名称用于引用Component
并在注册期间设置。
此Component
的名称。
- 类型:
- 字符串
options(obj) → {Object}
使用新选项深度合并选项对象。
注意:当
obj
和options
都包含其值为对象的属性时。这两个属性将使用module:obj.merge合并
名称 | 类型 | 描述 |
---|---|---|
obj | Object | 包含新选项的对象。 |
this.options_
和obj
合并后的新对象。
- 类型:
- Object
player() → {Player}
返回Component
所附着的Player。
此Component
所附着的播放器。
- 类型:
- Player
ready(fn)
将监听器绑定到组件的就绪状态。与事件监听器不同,如果就绪事件已经发生,它将立即触发函数。
名称 | 类型 | 描述 |
---|---|---|
fn | ReadyCallback | 当 |
removeAttribute(attribute)
从Component
的元素中移除属性。
名称 | 类型 | 描述 |
---|---|---|
属性 | 字符串 | 要移除的属性名称。 |
- 参见
removeChild(component)
从此Component
的子项列表中移除子Component
。同时从此Component
的元素中移除子Component
的元素。
名称 | 类型 | 描述 |
---|---|---|
组件 | Component | 要移除的子 |
removeClass(…classesToRemove)
从Component
的元素中移除CSS类名。
名称 | 类型 | 属性 | 描述 |
---|---|---|---|
要移除的类 | 字符串 | <可重复> | 一个或多个要移除的CSS类名。 |
requestAnimationFrame(fn) → {number}
将回调排队传递给requestAnimationFrame (rAF),但有一些额外的优点
通过回退到Component#setTimeout来支持不支持rAF的浏览器。
回调被转换为Component~GenericCallback(即绑定到组件)。
如果组件在调用之前被销毁,则会自动取消rAF回调。
名称 | 类型 | 描述 |
---|---|---|
fn | Component~GenericCallback | 一个函数,它将绑定到此组件并在浏览器下一次重绘之前执行。 |
- 参见
返回一个rAF ID,用于标识超时。它也可以在Component#cancelAnimationFrame中使用以取消动画帧回调。
- 类型:
- 数字
requestNamedAnimationFrame(name, fn)
请求一个动画帧,但只排队一个命名动画帧。在前面的动画帧完成之前,永远不会添加另一个。
名称 | 类型 | 描述 |
---|---|---|
名称 | 字符串 | 此requestAnimationFrame的名称 |
fn | Component~GenericCallback | 一个函数,它将绑定到此组件并在浏览器下一次重绘之前执行。 |
selected(selected)
将此菜单项的状态设置为选中或未选中。
名称 | 类型 | 描述 |
---|---|---|
选中 | 布尔值 | 菜单项是否选中 |
setAttribute(attribute, value)
设置Component
元素上的属性值
名称 | 类型 | 描述 |
---|---|---|
属性 | 字符串 | 要设置的属性名称。 |
值 | 字符串 | 要将属性设置为的值。 |
- 参见
setIcon(iconName, elopt) → {Element}
向另一个元素或组件添加SVG图标元素。
名称 | 类型 | 属性 | 默认 | 描述 |
---|---|---|---|---|
图标名称 | 字符串 | 图标的名称。所有图标名称的列表可以在“sandbox/svg-icons.html”中找到 | ||
元素 | 元素 | <可选> | this.el() | 要设置标题的元素。默认为当前组件的元素。 |
新创建的图标元素。
- 类型:
- 元素
setInterval(fn, interval) → {number}
创建一个每x
毫秒运行一次的函数。此函数是window.setInterval
的包装。但仍有一些原因选择使用此函数。
- 当Component#dispose被调用时,它通过Component#clearInterval被清除。
- 函数回调将是Component~GenericCallback
名称 | 类型 | 描述 |
---|---|---|
fn | Component~GenericCallback | 每 |
间隔 | 数字 | 每 |
- 参见
返回一个可用于标识间隔的ID。它也可以在Component#clearInterval中使用以清除间隔。
- 类型:
- 数字
setTimeout(fn, timeout) → {number}
创建一个在x
毫秒超时后运行的函数。此函数是window.setTimeout
的包装。但仍有一些原因选择使用此函数
- 当Component#dispose被调用时,它通过Component#clearTimeout被清除。
- 函数回调将被转换为Component~GenericCallback
注意:您不能对此函数返回的ID使用
window.clearTimeout
。这会导致其清理监听器无法被清除!请改用Component#clearTimeout或Component#dispose。
名称 | 类型 | 描述 |
---|---|---|
fn | Component~GenericCallback | 将在 |
超时 | 数字 | 在执行指定函数之前延迟的毫秒数。 |
- 参见
返回一个超时ID,用于标识超时。它也可以在Component#clearTimeout中使用以清除已设置的超时。
- 类型:
- 数字
show()
如果Component
的元素被隐藏,则通过从其移除“vjs-hidden”类名来显示它。
toggleClass(classToToggle, predicateopt)
向组件的元素添加或移除CSS类名。
- 当Component#hasClass返回false时,添加
classToToggle
。 - 当Component#hasClass返回true时,移除
classToToggle
。
名称 | 类型 | 属性 | 描述 |
---|---|---|---|
classToToggle | 字符串 | 要添加或移除的类。传递给DOMTokenList的toggle() | |
谓词 | boolean | | <可选> | 一个布尔值或返回布尔值的函数。传递给DOMTokenList的toggle()。 |
triggerReady()
触发此Component
的所有就绪监听器。
width(numopt, skipListenersopt) → {number|undefined}
根据CSS样式获取或设置组件的宽度。有关更详细的信息,请参见Component#dimension。
名称 | 类型 | 属性 | 描述 |
---|---|---|---|
num | number | | <可选> | 您要设置的宽度,后缀为“%”、“px”或无。 |
跳过监听器 | 布尔值 | <可选> | 跳过componentresize事件触发器 |
获取时的宽度,如果没有宽度则为零
- 类型:
- number |
undefined
事件
componentresize
当组件大小调整时触发。
dispose
当Component
被销毁时触发。
名称 | 类型 | 属性 | 默认 | 描述 |
---|---|---|---|---|
冒泡 | 布尔值 | <可选> | 假 | 设置为false,以便销毁事件不冒泡 |
ready
当Component
就绪时触发。
tap
当Component
被轻触时触发。
- MouseEvent