Javascript 如何使impress.js幻灯片自动播放和循环

Javascript 如何使impress.js幻灯片自动播放和循环,javascript,impress.js,Javascript,Impress.js,我有一个幻灯片,我想自动播放和循环不断。我发现了一些片段,可以让我设置全局幻灯片持续时间,并使用impress.next()和setInterval()调用向前移动,但这样我就无法为每张幻灯片设置不同的持续时间。我很高兴与大家分享我的解决方案。如果你看到改进的余地,不要害羞。希望这能帮助其他人 <script> var impress = impress(); impress.init(); document.addEventListener('impress:step

我有一个幻灯片,我想自动播放和循环不断。我发现了一些片段,可以让我设置全局幻灯片持续时间,并使用impress.next()和setInterval()调用向前移动,但这样我就无法为每张幻灯片设置不同的持续时间。

我很高兴与大家分享我的解决方案。如果你看到改进的余地,不要害羞。希望这能帮助其他人

<script>
  var impress = impress();
  impress.init();

  document.addEventListener('impress:stepenter', function(e){
    if (typeof timing !== 'undefined') clearInterval(timing);
    var duration = (e.target.getAttribute('data-transition-duration') ? e.target.getAttribute('data-transition-duration') : 2000); // use the set duration or fallback to 2000ms
    timing = setInterval(impress.next, duration);
  });
</script>

var impress=impress();
impress.init();
document.addEventListener('impress:stepenter',函数(e){
如果(计时类型!==‘未定义’)清除间隔(计时);
var duration=(e.target.getAttribute('data-transition-duration')?e.target.getAttribute('data-transition-duration'):2000);//使用设置的持续时间或回退到2000ms
定时=设置间隔(impress.next,持续时间);
});

非常有用,节省了大量时间+谢谢!这让我走上了正确的方向。然而,我确实遇到了一些问题。在多个步骤上使用自定义数据转换持续时间,很难让幻灯片在使用较短的持续时间后变慢。对我来说,用setTimeout(impress.next,duration)替换setInterval(impress.next,duration)将导致幻灯片以我希望的方式显示。