Reveal.addEventListener('ready', function(){ [].slice.call(document.querySelectorAll('ul li')).forEach(function(el){ el.classList.add('fragment'); }); }); function playCurrentFragment() { [].slice.call( document.querySelectorAll( '.fragment' ) ).forEach( function( fragment ) { var audio = fragment.querySelector( 'audio' ); if( audio ) { if( fragment.classList.contains( 'current-fragment' ) ) { audio.play(); } else { audio.pause(); } } } ); } Reveal.addEventListener( 'fragmentshown', playCurrentFragment ); Reveal.addEventListener( 'fragmenthidden', playCurrentFragment );