aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHakim El Hattab <hakim.elhattab@gmail.com>2015-01-30 10:52:28 +0100
committerHakim El Hattab <hakim.elhattab@gmail.com>2015-01-30 10:52:28 +0100
commit49f462e6ce329b9c569d4735ab617ac07385b17b (patch)
tree016e836cfbf4789b0a6a528499b1a4f1ffcabecc
parent621e8d71764cf19f329da3757caaa6f62fe2dbf2 (diff)
downloadfreenode-live-2017-presentation-49f462e6ce329b9c569d4735ab617ac07385b17b.tar
freenode-live-2017-presentation-49f462e6ce329b9c569d4735ab617ac07385b17b.tar.gz
gifs now restart when their slide container is shown
-rw-r--r--index.html3
-rw-r--r--js/reveal.js16
2 files changed, 19 insertions, 0 deletions
diff --git a/index.html b/index.html
index 5b631e9..656c9fc 100644
--- a/index.html
+++ b/index.html
@@ -201,6 +201,9 @@
<pre><code style="word-wrap: break-word;">&lt;section data-background-video="video.mp4,video.webm"&gt;</code></pre>
</div>
</section>
+ <section data-background="http://i.giphy.com/90F8aUepslB84.gif">
+ <h2>... and GIFs!</h2>
+ </section>
</section>
<section data-transition="slide" data-background="#4d7e65" data-background-transition="zoom">
diff --git a/js/reveal.js b/js/reveal.js
index ad2d5a3..afbfb6e 100644
--- a/js/reveal.js
+++ b/js/reveal.js
@@ -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' ) ) {