我想用javascript做这件事。我正在使用Hakim El Hattab的Reveal.js作为基础进行演示。
Reveal.js的工作方式是你正在查看的当前幻灯片有一个.present类,任何以前的幻灯片都有一个.past类,任何尚未进入视图的幻灯片都有一个.future类。
我希望自动将幻灯片集中的任何视频暂停到.past或.future。
我应该怎么做?
提前致谢!
的 的 ** * ** * ** * 的** * 更新的 * ** * ** * < / EM> ** * ****
所以感谢我在css-tricks forums上取得的一些方向,我能够使用getElementById来处理单个视频。
下面是我用来添加.past和.future类并同时暂停视频的javascript。
if( i < index ) {
// Any element previous to index is given the 'past' class
slide.setAttribute('class', 'past');
document.getElementById('vid').pause();
}
else if( i > index ) {
// Any element subsequent to index is given the 'future' class
slide.setAttribute('class', 'future');
document.getElementById('vid').pause();
}
我现在遇到的问题是如何将其应用于标签名称(即:视频)或可能是类。
答案 0 :(得分:1)
现在您已发布了代码,因此更容易修复:
if( i < index ) {
// Any element previous to index is given the 'past' class
slide.setAttribute('class', 'past');
var vids = document.getElementsByClassName("past");
for (var i = 0; i < vids.length; i++) {
vids[i].pause();
}
}
else if( i > index ) {
// Any element subsequent to index is given the 'future' class
slide.setAttribute('class', 'future');
var vids = document.getElementsByClassName("future");
for (var i = 0; i < vids.length; i++) {
vids[i].pause();
}
}
看看是否有帮助。如果没有,您使用的是符合标准的现代浏览器吗? getElementsByClassName()
是一项相对较新的功能。它适用于我最新版本的Chrome。
答案 1 :(得分:0)
我不知道setTimeout
是否适用于此,但您可以尝试以下方法:
function PauseVids() {
var vids = document.getElementsByClassName("past");
var vids2 = document.getElementsByClassName("future");
for (var i = 0; i < vids.length; i++) {
vids[i].pause();
}
for (var i = 0; i < vids2.length; i++) {
vids2[i].pause();
}
}
// Within onLoad or $(document).ready()
setTimeout("PauseVids()", 1000);
告诉我这是否有效。
答案 2 :(得分:0)
@petschekr:猜这不行,因为过去的classname不仅设置为videoelements?!
我不知道你是如何揭示工作以及你正在使用什么样的玩家!但我的方式会像:
当前类只有一个文件,右(当前幻灯片)
a)定义类似于onChange函数(例如在每个更改页面+按键的按钮上)
b)在切换页面之前触发该功能
function onChange(){
var currentSlice = document.getElementByClassName('present') //get current html elemen
var videoObjects = currentSlice.getElementsByTag('video') //get videoelements here html5 video
for each videoObj
videoObj.pause()
编辑:伪代码让你有个主意!