如何在impress.js中将go添加到下一张幻灯片

How can I add go to the next slide in impress.js

本文关键字:幻灯片 一张 添加 impress js go 中将      更新时间:2023-09-26

impress.js是一个使用Javascript编写的新web演示。我想创建自定义事件以转到下一页。例如,我可能会创建一个"下一步"answers"上一步"按钮。

整个impress.js文件是一个函数,从函数中调用selectPrev();将转到下一页。然而,我对Javascript不是很好,我不知道如何从函数外调用selectPrev();

该文件可在以下位置找到:https://github.com/bartaz/impress.js/blob/master/js/impress.js

impress.js在提出此问题后已更新。现在只需要调用以下API方法之一:

impress().next();
impress().prev();
impress().goto(10);

我添加了这个,以防有人在这个问题上出错。

从外观上看,整个文件都在一个闭包内,而selectNext是该闭包的本地文件。此外,它只在密钥侦听器中间接使用,因此从那里获取它也是不切实际的。

因此,在不修改源代码的情况下,我看不到任何简单的方法来获取selectPrev/selectNext

以下是大约六小时前提交的消息:

impressive refactoring of slide selection - getting closer to API

看来开发人员计划很快添加一个合适的API。如果您稍等片刻,应该有一些标准的、经过批准的(希望)文档化的方式来以程序方式与impress.js交互。

如果你只是想快速破解,你可以随时让你的按钮触发一个关键事件。如果你使用的是jQuery,你可以这样做:

$(document).trigger($.Event("keydown", { keyCode: 38 }))

38将转到下一张幻灯片,40将转到上一张幻灯片。

我建议使用jmpress.js。它是impress.js的jQuery端口,它有一个API,其中包括nextprev方法。

如果下一个prev在impressdiv 内部,它就可以工作

$('#next').on('click', function(e){
    impress().next();
    e.stopPropagation();
});
$('#prev').on('click', function(e){
    impress().prev();
    e.stopPropagation();
});