merge mutiplex fragment fix #395

This commit is contained in:
Hakim El Hattab committed 2013-04-11 09:17:20 -04:00
commit 3999430b81
4 files changed
+52 -23

No files matched your search

+11
View File
@@ -2050,6 +2050,17 @@ var Reveal = (function(){
return config; return config;
}, },
// Returns an index (1-based) of the current fragment
getCurrentFragmentIndex : function() {
if( currentSlide ) {
var visibleFragments = currentSlide.querySelectorAll( '.fragment.visible' );
if( visibleFragments.length ) {
return visibleFragments.length;
}
}
},
// Helper method, retrieves query string as a key/value hash // Helper method, retrieves query string as a key/value hash
getQueryHash: function() { getQueryHash: function() {
var query = {}; var query = {};
+2 -2
View File
@@ -1,8 +1,8 @@
/*! /*!
* reveal.js 2.4.0 (2013-04-06, 12:13) * reveal.js 2.4.0 (2013-04-11, 09:16)
* http://lab.hakim.se/reveal-js * http://lab.hakim.se/reveal-js
* MIT licensed * MIT licensed
* *
* Copyright (C) 2013 Hakim El Hattab, http://hakim.se * Copyright (C) 2013 Hakim El Hattab, http://hakim.se
*/ */
var Reveal=function(){"use strict";function e(e){return qt||At?(window.addEventListener("load",y,!1),l(yt,e),n(),r(),void 0):(document.body.setAttribute("class","no-transforms"),void 0)}function t(){if(St.theme=document.querySelector("#theme"),St.wrapper=document.querySelector(".reveal"),St.slides=document.querySelector(".reveal .slides"),!St.wrapper.querySelector(".progress")){var e=document.createElement("div");e.classList.add("progress"),e.innerHTML="<span></span>",St.wrapper.appendChild(e)}if(!St.wrapper.querySelector(".controls")){var t=document.createElement("aside");t.classList.add("controls"),t.innerHTML='<div class="navigate-left"></div><div class="navigate-right"></div><div class="navigate-up"></div><div class="navigate-down"></div>',St.wrapper.appendChild(t)}if(!St.wrapper.querySelector(".state-background")){var n=document.createElement("div");n.classList.add("state-background"),St.wrapper.appendChild(n)}if(!St.wrapper.querySelector(".pause-overlay")){var r=document.createElement("div");r.classList.add("pause-overlay"),St.wrapper.appendChild(r)}St.progress=document.querySelector(".reveal .progress"),St.progressbar=document.querySelector(".reveal .progress span"),yt.controls&&(St.controls=document.querySelector(".reveal .controls"),St.controlsLeft=d(document.querySelectorAll(".navigate-left")),St.controlsRight=d(document.querySelectorAll(".navigate-right")),St.controlsUp=d(document.querySelectorAll(".navigate-up")),St.controlsDown=d(document.querySelectorAll(".navigate-down")),St.controlsPrev=d(document.querySelectorAll(".navigate-prev")),St.controlsNext=d(document.querySelectorAll(".navigate-next")))}function n(){/iphone|ipod|android/gi.test(navigator.userAgent)&&!/crios/gi.test(navigator.userAgent)&&(window.addEventListener("load",v,!1),window.addEventListener("orientationchange",v,!1))}function r(){function e(){n.length&&head.js.apply(null,n),o()}for(var t=[],n=[],r=0,s=yt.dependencies.length;s>r;r++){var a=yt.dependencies[r];(!a.condition||a.condition())&&(a.async?n.push(a.src):t.push(a.src),"function"==typeof a.callback&&head.ready(a.src.match(/([\w\d_\-]*)\.?js$|[^\\\/]*$/i)[0],a.callback))}t.length?(head.ready(e),head.js.apply(null,t)):e()}function o(){t(),s(),O(),setTimeout(function(){f("ready",{indexh:wt,indexv:Lt,currentSlide:vt})},1)}function s(e){if(St.wrapper.classList.remove(yt.transition),"object"==typeof e&&l(yt,e),At===!1&&(yt.transition="linear"),St.wrapper.classList.add(yt.transition),St.wrapper.setAttribute("data-transition-speed",yt.transitionSpeed),St.controls&&(St.controls.style.display=yt.controls&&St.controls?"block":"none"),St.progress&&(St.progress.style.display=yt.progress&&St.progress?"block":"none"),yt.rtl?St.wrapper.classList.add("rtl"):St.wrapper.classList.remove("rtl"),yt.center?St.wrapper.classList.add("center"):St.wrapper.classList.remove("center"),yt.mouseWheel?(document.addEventListener("DOMMouseScroll",et,!1),document.addEventListener("mousewheel",et,!1)):(document.removeEventListener("DOMMouseScroll",et,!1),document.removeEventListener("mousewheel",et,!1)),yt.rollingLinks?p():m(),yt.theme&&St.theme){var t=St.theme.getAttribute("href"),n=/[^\/]*?(?=\.css)/,r=t.match(n)[0];yt.theme!==r&&(t=t.replace(n,yt.theme),St.theme.setAttribute("href",t))}a()}function a(){c(),i(),y(),gt=yt.autoSlide,I()}function i(){Dt=!0,window.addEventListener("hashchange",ct,!1),window.addEventListener("resize",lt,!1),yt.touch&&(St.wrapper.addEventListener("touchstart",Z,!1),St.wrapper.addEventListener("touchmove",Q,!1),St.wrapper.addEventListener("touchend",V,!1),window.navigator.msPointerEnabled&&(St.wrapper.addEventListener("MSPointerDown",B,!1),St.wrapper.addEventListener("MSPointerMove",G,!1),St.wrapper.addEventListener("MSPointerUp",J,!1))),yt.keyboard&&document.addEventListener("keydown",$,!1),yt.progress&&St.progress&&St.progress.addEventListener("click",tt,!1),yt.controls&&St.controls&&["touchstart","click"].forEach(function(e){St.controlsLeft.forEach(function(t){t.addEventListener(e,nt,!1)}),St.controlsRight.forEach(function(t){t.addEventListener(e,rt,!1)}),St.controlsUp.forEach(function(t){t.addEventListener(e,ot,!1)}),St.controlsDown.forEach(function(t){t.addEventListener(e,st,!1)}),St.controlsPrev.forEach(function(t){t.addEventListener(e,at,!1)}),St.controlsNext.forEach(function(t){t.addEventListener(e,it,!1)})})}function c(){Dt=!1,document.removeEventListener("keydown",$,!1),window.removeEventListener("hashchange",ct,!1),window.removeEventListener("resize",lt,!1),St.wrapper.removeEventListener("touchstart",Z,!1),St.wrapper.removeEventListener("touchmove",Q,!1),St.wrapper.removeEventListener("touchend",V,!1),window.navigator.msPointerEnabled&&(St.wrapper.removeEventListener("MSPointerDown",B,!1),St.wrapper.removeEventListener("MSPointerMove",G,!1),St.wrapper.removeEventListener("MSPointerUp",J,!1)),yt.progress&&St.progress&&St.progress.removeEventListener("click",tt,!1),yt.controls&&St.controls&&["touchstart","click"].forEach(function(e){St.controlsLeft.forEach(function(t)Line truncated var Reveal=function(){"use strict";function e(e){return qt||At?(window.addEventListener("load",g,!1),l(gt,e),n(),r(),void 0):(document.body.setAttribute("class","no-transforms"),void 0)}function t(){if(St.theme=document.querySelector("#theme"),St.wrapper=document.querySelector(".reveal"),St.slides=document.querySelector(".reveal .slides"),!St.wrapper.querySelector(".progress")){var e=document.createElement("div");e.classList.add("progress"),e.innerHTML="<span></span>",St.wrapper.appendChild(e)}if(!St.wrapper.querySelector(".controls")){var t=document.createElement("aside");t.classList.add("controls"),t.innerHTML='<div class="navigate-left"></div><div class="navigate-right"></div><div class="navigate-up"></div><div class="navigate-down"></div>',St.wrapper.appendChild(t)}if(!St.wrapper.querySelector(".state-background")){var n=document.createElement("div");n.classList.add("state-background"),St.wrapper.appendChild(n)}if(!St.wrapper.querySelector(".pause-overlay")){var r=document.createElement("div");r.classList.add("pause-overlay"),St.wrapper.appendChild(r)}St.progress=document.querySelector(".reveal .progress"),St.progressbar=document.querySelector(".reveal .progress span"),gt.controls&&(St.controls=document.querySelector(".reveal .controls"),St.controlsLeft=d(document.querySelectorAll(".navigate-left")),St.controlsRight=d(document.querySelectorAll(".navigate-right")),St.controlsUp=d(document.querySelectorAll(".navigate-up")),St.controlsDown=d(document.querySelectorAll(".navigate-down")),St.controlsPrev=d(document.querySelectorAll(".navigate-prev")),St.controlsNext=d(document.querySelectorAll(".navigate-next")))}function n(){/iphone|ipod|android/gi.test(navigator.userAgent)&&!/crios/gi.test(navigator.userAgent)&&(window.addEventListener("load",v,!1),window.addEventListener("orientationchange",v,!1))}function r(){function e(){n.length&&head.js.apply(null,n),o()}for(var t=[],n=[],r=0,s=gt.dependencies.length;s>r;r++){var a=gt.dependencies[r];(!a.condition||a.condition())&&(a.async?n.push(a.src):t.push(a.src),"function"==typeof a.callback&&head.ready(a.src.match(/([\w\d_\-]*)\.?js$|[^\\\/]*$/i)[0],a.callback))}t.length?(head.ready(e),head.js.apply(null,t)):e()}function o(){t(),s(),O(),setTimeout(function(){f("ready",{indexh:wt,indexv:Lt,currentSlide:vt})},1)}function s(e){if(St.wrapper.classList.remove(gt.transition),"object"==typeof e&&l(gt,e),At===!1&&(gt.transition="linear"),St.wrapper.classList.add(gt.transition),St.wrapper.setAttribute("data-transition-speed",gt.transitionSpeed),St.controls&&(St.controls.style.display=gt.controls&&St.controls?"block":"none"),St.progress&&(St.progress.style.display=gt.progress&&St.progress?"block":"none"),gt.rtl?St.wrapper.classList.add("rtl"):St.wrapper.classList.remove("rtl"),gt.center?St.wrapper.classList.add("center"):St.wrapper.classList.remove("center"),gt.mouseWheel?(document.addEventListener("DOMMouseScroll",et,!1),document.addEventListener("mousewheel",et,!1)):(document.removeEventListener("DOMMouseScroll",et,!1),document.removeEventListener("mousewheel",et,!1)),gt.rollingLinks?p():m(),gt.theme&&St.theme){var t=St.theme.getAttribute("href"),n=/[^\/]*?(?=\.css)/,r=t.match(n)[0];gt.theme!==r&&(t=t.replace(n,gt.theme),St.theme.setAttribute("href",t))}a()}function a(){c(),i(),g(),yt=gt.autoSlide,H()}function i(){Dt=!0,window.addEventListener("hashchange",ct,!1),window.addEventListener("resize",lt,!1),gt.touch&&(St.wrapper.addEventListener("touchstart",Z,!1),St.wrapper.addEventListener("touchmove",Q,!1),St.wrapper.addEventListener("touchend",V,!1),window.navigator.msPointerEnabled&&(St.wrapper.addEventListener("MSPointerDown",B,!1),St.wrapper.addEventListener("MSPointerMove",G,!1),St.wrapper.addEventListener("MSPointerUp",J,!1))),gt.keyboard&&document.addEventListener("keydown",$,!1),gt.progress&&St.progress&&St.progress.addEventListener("click",tt,!1),gt.controls&&St.controls&&["touchstart","click"].forEach(function(e){St.controlsLeft.forEach(function(t){t.addEventListener(e,nt,!1)}),St.controlsRight.forEach(function(t){t.addEventListener(e,rt,!1)}),St.controlsUp.forEach(function(t){t.addEventListener(e,ot,!1)}),St.controlsDown.forEach(function(t){t.addEventListener(e,st,!1)}),St.controlsPrev.forEach(function(t){t.addEventListener(e,at,!1)}),St.controlsNext.forEach(function(t){t.addEventListener(e,it,!1)})})}function c(){Dt=!1,document.removeEventListener("keydown",$,!1),window.removeEventListener("hashchange",ct,!1),window.removeEventListener("resize",lt,!1),St.wrapper.removeEventListener("touchstart",Z,!1),St.wrapper.removeEventListener("touchmove",Q,!1),St.wrapper.removeEventListener("touchend",V,!1),window.navigator.msPointerEnabled&&(St.wrapper.removeEventListener("MSPointerDown",B,!1),St.wrapper.removeEventListener("MSPointerMove",G,!1),St.wrapper.removeEventListener("MSPointerUp",J,!1)),gt.progress&&St.progress&&St.progress.removeEventListener("click",tt,!1),gt.controls&&St.controls&&["touchstart","click"].forEach(function(e){St.controlsLeft.forEach(function(t)Line truncated
+1 -1
View File
@@ -8,6 +8,6 @@
if (data.socketId !== socketId) { return; } if (data.socketId !== socketId) { return; }
if( window.location.host === 'localhost:1947' ) return; if( window.location.host === 'localhost:1947' ) return;
Reveal.slide(data.indexh, data.indexv, null, 'remote'); Reveal.slide(data.indexh, data.indexv, data.indexf, 'remote');
}); });
}()); }());
+38 -20
View File
@@ -5,28 +5,46 @@
var socket = io.connect(multiplex.url); var socket = io.connect(multiplex.url);
Reveal.addEventListener( 'slidechanged', function( event ) { var notify = function( slideElement, indexh, indexv, origin ) {
var nextindexh; if( typeof origin === 'undefined' && origin !== 'remote' ) {
var nextindexv; var nextindexh;
var slideElement = event.currentSlide; var nextindexv;
if (slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION') { var fragmentindex = Reveal.getCurrentFragmentIndex();
nextindexh = event.indexh; if (typeof fragmentindex == 'undefined') {
nextindexv = event.indexv + 1; fragmentindex = 0;
} else { }
nextindexh = event.indexh + 1;
nextindexv = 0; if (slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION') {
nextindexh = indexh;
nextindexv = indexv + 1;
} else {
nextindexh = indexh + 1;
nextindexv = 0;
}
var slideData = {
indexh : indexh,
indexv : indexv,
indexf : fragmentindex,
nextindexh : nextindexh,
nextindexv : nextindexv,
secret: multiplex.secret,
socketId : multiplex.id
};
socket.emit('slidechanged', slideData);
} }
}
var slideData = { Reveal.addEventListener( 'slidechanged', function( event ) {
indexh : event.indexh, notify( event.currentSlide, event.indexh, event.indexv, event.origin );
indexv : event.indexv,
nextindexh : nextindexh,
nextindexv : nextindexv,
secret: multiplex.secret,
socketId : multiplex.id
};
if( typeof event.origin === 'undefined' && event.origin !== 'remote' ) socket.emit('slidechanged', slideData);
} ); } );
var fragmentNotify = function( event ) {
notify( Reveal.getCurrentSlide(), Reveal.getIndices().h, Reveal.getIndices().v, event.origin );
};
Reveal.addEventListener( 'fragmentshown', fragmentNotify );
Reveal.addEventListener( 'fragmenthidden', fragmentNotify );
}()); }());