forked from campiaperti/infra
merge mutiplex fragment fix #395
This commit is contained in:
commit
3999430b81
4 changed files with 53 additions and 24 deletions
11
js/reveal.js
11
js/reveal.js
|
@ -2050,6 +2050,17 @@ var Reveal = (function(){
|
|||
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
|
||||
getQueryHash: function() {
|
||||
var query = {};
|
||||
|
|
4
js/reveal.min.js
vendored
4
js/reveal.min.js
vendored
File diff suppressed because one or more lines are too long
|
@ -8,6 +8,6 @@
|
|||
if (data.socketId !== socketId) { 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');
|
||||
});
|
||||
}());
|
||||
|
|
|
@ -5,28 +5,46 @@
|
|||
|
||||
var socket = io.connect(multiplex.url);
|
||||
|
||||
Reveal.addEventListener( 'slidechanged', function( event ) {
|
||||
var nextindexh;
|
||||
var nextindexv;
|
||||
var slideElement = event.currentSlide;
|
||||
var notify = function( slideElement, indexh, indexv, origin ) {
|
||||
if( typeof origin === 'undefined' && origin !== 'remote' ) {
|
||||
var nextindexh;
|
||||
var nextindexv;
|
||||
|
||||
if (slideElement.nextElementSibling && slideElement.parentNode.nodeName == 'SECTION') {
|
||||
nextindexh = event.indexh;
|
||||
nextindexv = event.indexv + 1;
|
||||
} else {
|
||||
nextindexh = event.indexh + 1;
|
||||
nextindexv = 0;
|
||||
var fragmentindex = Reveal.getCurrentFragmentIndex();
|
||||
if (typeof fragmentindex == 'undefined') {
|
||||
fragmentindex = 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 = {
|
||||
indexh : event.indexh,
|
||||
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);
|
||||
Reveal.addEventListener( 'slidechanged', function( event ) {
|
||||
notify( event.currentSlide, event.indexh, event.indexv, event.origin );
|
||||
} );
|
||||
}());
|
||||
|
||||
var fragmentNotify = function( event ) {
|
||||
notify( Reveal.getCurrentSlide(), Reveal.getIndices().h, Reveal.getIndices().v, event.origin );
|
||||
};
|
||||
|
||||
Reveal.addEventListener( 'fragmentshown', fragmentNotify );
|
||||
Reveal.addEventListener( 'fragmenthidden', fragmentNotify );
|
||||
}());
|
Loading…
Reference in a new issue