|
@@ -2580,6 +2580,15 @@
|
|
|
currentVideo.play();
|
|
|
}
|
|
|
|
|
|
+ var backgroundImageURL = currentBackground.style.backgroundImage || '';
|
|
|
+
|
|
|
+ // Restart GIFs (doesn't work in Firefox)
|
|
|
+ if( /\.gif/i.test( backgroundImageURL ) ) {
|
|
|
+ currentBackground.style.backgroundImage = '';
|
|
|
+ window.getComputedStyle( currentBackground ).opacity;
|
|
|
+ currentBackground.style.backgroundImage = backgroundImageURL;
|
|
|
+ }
|
|
|
+
|
|
|
// Don't transition between identical backgrounds. This
|
|
|
// prevents unwanted flicker.
|
|
|
var previousBackgroundHash = previousBackground ? previousBackground.getAttribute( 'data-background-hash' ) : null;
|
|
@@ -2826,6 +2835,13 @@
|
|
|
function startEmbeddedContent( slide ) {
|
|
|
|
|
|
if( slide && !isSpeakerNotes() ) {
|
|
|
+ // Restart GIFs
|
|
|
+ toArray( slide.querySelectorAll( 'img[src$=".gif"]' ) ).forEach( function( el ) {
|
|
|
+ // Setting the same unchanged source like this was confirmed
|
|
|
+ // to work in Chrome, FF & Safari
|
|
|
+ el.setAttribute( 'src', el.getAttribute( 'src' ) );
|
|
|
+ } );
|
|
|
+
|
|
|
// HTML5 media elements
|
|
|
toArray( slide.querySelectorAll( 'video, audio' ) ).forEach( function( el ) {
|
|
|
if( el.hasAttribute( 'data-autoplay' ) ) {
|