parent
ff20051861
commit
1e0cbe6779
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -188,6 +188,13 @@ export default class Controls {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
destroy() {
|
||||||
|
|
||||||
|
this.unbind();
|
||||||
|
this.element.remove();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Event handlers for navigation control buttons.
|
* Event handlers for navigation control buttons.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -238,4 +238,17 @@ export default class Plugins {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
destroy() {
|
||||||
|
|
||||||
|
Object.values( this.registeredPlugins ).forEach( plugin => {
|
||||||
|
if( typeof plugin.destroy === 'function' ) {
|
||||||
|
plugin.destroy();
|
||||||
|
}
|
||||||
|
} );
|
||||||
|
|
||||||
|
this.registeredPlugins = {};
|
||||||
|
this.asyncDependencies = [];
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,6 +75,17 @@ export default class Pointer {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
destroy() {
|
||||||
|
|
||||||
|
this.showCursor();
|
||||||
|
|
||||||
|
document.removeEventListener( 'DOMMouseScroll', this.onDocumentMouseScroll, false );
|
||||||
|
document.removeEventListener( 'mousewheel', this.onDocumentMouseScroll, false );
|
||||||
|
document.removeEventListener( 'mousemove', this.onDocumentCursorActive, false );
|
||||||
|
document.removeEventListener( 'mousedown', this.onDocumentCursorActive, false );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Called whenever there is mouse input at the document level
|
* Called whenever there is mouse input at the document level
|
||||||
* to determine if the cursor is active or not.
|
* to determine if the cursor is active or not.
|
||||||
|
|
91
js/reveal.js
91
js/reveal.js
|
@ -405,32 +405,7 @@ export default function( revealElement, options ) {
|
||||||
function setupPostMessage() {
|
function setupPostMessage() {
|
||||||
|
|
||||||
if( config.postMessage ) {
|
if( config.postMessage ) {
|
||||||
window.addEventListener( 'message', event => {
|
window.addEventListener( 'message', onPostMessage, false );
|
||||||
let data = event.data;
|
|
||||||
|
|
||||||
// Make sure we're dealing with JSON
|
|
||||||
if( typeof data === 'string' && data.charAt( 0 ) === '{' && data.charAt( data.length - 1 ) === '}' ) {
|
|
||||||
data = JSON.parse( data );
|
|
||||||
|
|
||||||
// Check if the requested method can be found
|
|
||||||
if( data.method && typeof Reveal[data.method] === 'function' ) {
|
|
||||||
|
|
||||||
if( POST_MESSAGE_METHOD_BLACKLIST.test( data.method ) === false ) {
|
|
||||||
|
|
||||||
const result = Reveal[data.method].apply( Reveal, data.args );
|
|
||||||
|
|
||||||
// Dispatch a postMessage event with the returned value from
|
|
||||||
// our method invocation for getter functions
|
|
||||||
dispatchPostMessage( 'callback', { method: data.method, result: result } );
|
|
||||||
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
console.warn( 'reveal.js: "'+ data.method +'" is is blacklisted from the postMessage API' );
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, false );
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -577,6 +552,37 @@ export default function( revealElement, options ) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Uninitializes reveal.js by undoing changes made to the
|
||||||
|
* DOM and removing all event listeners.
|
||||||
|
*/
|
||||||
|
function destroy() {
|
||||||
|
|
||||||
|
removeEventListeners();
|
||||||
|
cancelAutoSlide();
|
||||||
|
disablePreviewLinks();
|
||||||
|
|
||||||
|
// Destroy controllers
|
||||||
|
plugins.destroy();
|
||||||
|
pointer.destroy();
|
||||||
|
controls.destroy();
|
||||||
|
|
||||||
|
// Remove event listeners
|
||||||
|
document.removeEventListener( 'fullscreenchange', onFullscreenChange );
|
||||||
|
document.removeEventListener( 'webkitfullscreenchange', onFullscreenChange );
|
||||||
|
document.removeEventListener( 'visibilitychange', onPageVisibilityChange, false );
|
||||||
|
window.removeEventListener( 'message', onPostMessage, false );
|
||||||
|
window.removeEventListener( 'load', layout, false );
|
||||||
|
|
||||||
|
// Undo DOM changes
|
||||||
|
dom.viewport.classList.remove( 'reveal-viewport' );
|
||||||
|
document.documentElement.classList.remove( 'reveal-full-page' );
|
||||||
|
|
||||||
|
dom.viewport.style.removeProperty( '--slide-width' );
|
||||||
|
dom.viewport.style.removeProperty( '--slide-height' );
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Adds a listener to one of our custom reveal.js events,
|
* Adds a listener to one of our custom reveal.js events,
|
||||||
* like slidechanged.
|
* like slidechanged.
|
||||||
|
@ -2375,6 +2381,38 @@ export default function( revealElement, options ) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Listener for post message events posted to this window.
|
||||||
|
*/
|
||||||
|
function onPostMessage( event ) {
|
||||||
|
|
||||||
|
let data = event.data;
|
||||||
|
|
||||||
|
// Make sure we're dealing with JSON
|
||||||
|
if( typeof data === 'string' && data.charAt( 0 ) === '{' && data.charAt( data.length - 1 ) === '}' ) {
|
||||||
|
data = JSON.parse( data );
|
||||||
|
|
||||||
|
// Check if the requested method can be found
|
||||||
|
if( data.method && typeof Reveal[data.method] === 'function' ) {
|
||||||
|
|
||||||
|
if( POST_MESSAGE_METHOD_BLACKLIST.test( data.method ) === false ) {
|
||||||
|
|
||||||
|
const result = Reveal[data.method].apply( Reveal, data.args );
|
||||||
|
|
||||||
|
// Dispatch a postMessage event with the returned value from
|
||||||
|
// our method invocation for getter functions
|
||||||
|
dispatchPostMessage( 'callback', { method: data.method, result: result } );
|
||||||
|
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
console.warn( 'reveal.js: "'+ data.method +'" is is blacklisted from the postMessage API' );
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Event listener for transition end on the current slide.
|
* Event listener for transition end on the current slide.
|
||||||
*
|
*
|
||||||
|
@ -2521,6 +2559,7 @@ export default function( revealElement, options ) {
|
||||||
|
|
||||||
initialize,
|
initialize,
|
||||||
configure,
|
configure,
|
||||||
|
destroy,
|
||||||
|
|
||||||
sync,
|
sync,
|
||||||
syncSlide,
|
syncSlide,
|
||||||
|
|
|
@ -25,6 +25,12 @@ const Plugin = {
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
|
|
||||||
|
},
|
||||||
|
|
||||||
|
destroy: () => {
|
||||||
|
|
||||||
|
zoom.reset();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -52,19 +58,11 @@ var zoom = (function(){
|
||||||
panUpdateInterval = -1;
|
panUpdateInterval = -1;
|
||||||
|
|
||||||
// Check for transform support so that we can fallback otherwise
|
// Check for transform support so that we can fallback otherwise
|
||||||
var supportsTransforms = 'WebkitTransform' in document.body.style ||
|
var supportsTransforms = 'transform' in document.body.style;
|
||||||
'MozTransform' in document.body.style ||
|
|
||||||
'msTransform' in document.body.style ||
|
|
||||||
'OTransform' in document.body.style ||
|
|
||||||
'transform' in document.body.style;
|
|
||||||
|
|
||||||
if( supportsTransforms ) {
|
if( supportsTransforms ) {
|
||||||
// The easing that will be applied when we zoom in/out
|
// The easing that will be applied when we zoom in/out
|
||||||
document.body.style.transition = 'transform 0.8s ease';
|
document.body.style.transition = 'transform 0.8s ease';
|
||||||
document.body.style.OTransition = '-o-transform 0.8s ease';
|
|
||||||
document.body.style.msTransition = '-ms-transform 0.8s ease';
|
|
||||||
document.body.style.MozTransition = '-moz-transform 0.8s ease';
|
|
||||||
document.body.style.WebkitTransition = '-webkit-transform 0.8s ease';
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Zoom out if the user hits escape
|
// Zoom out if the user hits escape
|
||||||
|
@ -105,10 +103,6 @@ var zoom = (function(){
|
||||||
// Reset
|
// Reset
|
||||||
if( scale === 1 ) {
|
if( scale === 1 ) {
|
||||||
document.body.style.transform = '';
|
document.body.style.transform = '';
|
||||||
document.body.style.OTransform = '';
|
|
||||||
document.body.style.msTransform = '';
|
|
||||||
document.body.style.MozTransform = '';
|
|
||||||
document.body.style.WebkitTransform = '';
|
|
||||||
}
|
}
|
||||||
// Scale
|
// Scale
|
||||||
else {
|
else {
|
||||||
|
@ -116,16 +110,7 @@ var zoom = (function(){
|
||||||
transform = 'translate('+ -rect.x +'px,'+ -rect.y +'px) scale('+ scale +')';
|
transform = 'translate('+ -rect.x +'px,'+ -rect.y +'px) scale('+ scale +')';
|
||||||
|
|
||||||
document.body.style.transformOrigin = origin;
|
document.body.style.transformOrigin = origin;
|
||||||
document.body.style.OTransformOrigin = origin;
|
|
||||||
document.body.style.msTransformOrigin = origin;
|
|
||||||
document.body.style.MozTransformOrigin = origin;
|
|
||||||
document.body.style.WebkitTransformOrigin = origin;
|
|
||||||
|
|
||||||
document.body.style.transform = transform;
|
document.body.style.transform = transform;
|
||||||
document.body.style.OTransform = transform;
|
|
||||||
document.body.style.msTransform = transform;
|
|
||||||
document.body.style.MozTransform = transform;
|
|
||||||
document.body.style.WebkitTransform = transform;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*!
|
/*!
|
||||||
* reveal.js Zoom plugin
|
* reveal.js Zoom plugin
|
||||||
*/
|
*/
|
||||||
var e={id:"zoom",init:function(e){e.getRevealElement().addEventListener("mousedown",(function(o){var n=/Linux/.test(window.navigator.platform)?"ctrl":"alt",i=(e.getConfig().zoomKey?e.getConfig().zoomKey:n)+"Key",d=e.getConfig().zoomLevel?e.getConfig().zoomLevel:2;o[i]&&!e.isOverview()&&(o.preventDefault(),t.to({x:o.clientX,y:o.clientY,scale:d,pan:!1}))}))}},t=function(){var e=1,o=0,n=0,i=-1,d=-1,s="WebkitTransform"in document.body.style||"MozTransform"in document.body.style||"msTransform"in document.body.style||"OTransform"in document.body.style||"transform"in document.body.style;function r(t,o){var n=y();if(t.width=t.width||1,t.height=t.height||1,t.x-=(window.innerWidth-t.width*o)/2,t.y-=(window.innerHeight-t.height*o)/2,s)if(1===o)document.body.style.transform="",document.body.style.OTransform="",document.body.style.msTransform="",document.body.style.MozTransform="",document.body.style.WebkitTransform="";else{var i=n.x+"px "+n.y+"px",d="translate("+-t.x+"px,"+-t.y+"px) scale("+o+")";document.body.style.transformOrigin=i,document.body.style.OTransformOrigin=i,document.body.style.msTransformOrigin=i,document.body.style.MozTransformOrigin=i,document.body.style.WebkitTransformOrigin=i,document.body.style.transform=d,document.body.style.OTransform=d,document.body.style.msTransform=d,document.body.style.MozTransform=d,document.body.style.WebkitTransform=d}else 1===o?(document.body.style.position="",document.body.style.left="",document.body.style.top="",document.body.style.width="",document.body.style.height="",document.body.style.zoom=""):(document.body.style.position="relative",document.body.style.left=-(n.x+t.x)/o+"px",document.body.style.top=-(n.y+t.y)/o+"px",document.body.style.width=100*o+"%",document.body.style.height=100*o+"%",document.body.style.zoom=o);e=o,document.documentElement.classList&&(1!==e?document.documentElement.classList.add("zoomed"):document.documentElement.classList.remove("zoomed"))}function m(){var t=.12*window.innerWidth,i=.12*window.innerHeight,d=y();n<i?window.scroll(d.x,d.y-14/e*(1-n/i)):n>window.innerHeight-i&&window.scroll(d.x,d.y+(1-(window.innerHeight-n)/i)*(14/e)),o<t?window.scroll(d.x-14/e*(1-o/t),d.y):o>window.innerWidth-t&&window.scroll(d.x+(1-(window.innerWidth-o)/t)*(14/e),d.y)}function y(){return{x:void 0!==window.scrollX?window.scrollX:window.pageXOffset,y:void 0!==window.scrollY?window.scrollY:window.pageYOffset}}return s&&(document.body.style.transition="transform 0.8s ease",document.body.style.OTransition="-o-transform 0.8s ease",document.body.style.msTransition="-ms-transform 0.8s ease",document.body.style.MozTransition="-moz-transform 0.8s ease",document.body.style.WebkitTransition="-webkit-transform 0.8s ease"),document.addEventListener("keyup",(function(o){1!==e&&27===o.keyCode&&t.out()})),document.addEventListener("mousemove",(function(t){1!==e&&(o=t.clientX,n=t.clientY)})),{to:function(o){if(1!==e)t.out();else{if(o.x=o.x||0,o.y=o.y||0,o.element){var n=o.element.getBoundingClientRect();o.x=n.left-20,o.y=n.top-20,o.width=n.width+40,o.height=n.height+40}void 0!==o.width&&void 0!==o.height&&(o.scale=Math.max(Math.min(window.innerWidth/o.width,window.innerHeight/o.height),1)),o.scale>1&&(o.x*=o.scale,o.y*=o.scale,r(o,o.scale),!1!==o.pan&&(i=setTimeout((function(){d=setInterval(m,1e3/60)}),800)))}},out:function(){clearTimeout(i),clearInterval(d),r({x:0,y:0},1),e=1},magnify:function(e){this.to(e)},reset:function(){this.out()},zoomLevel:function(){return e}}}();export default function(){return e}
|
var e={id:"zoom",init:function(e){e.getRevealElement().addEventListener("mousedown",(function(n){var o=/Linux/.test(window.navigator.platform)?"ctrl":"alt",i=(e.getConfig().zoomKey?e.getConfig().zoomKey:o)+"Key",d=e.getConfig().zoomLevel?e.getConfig().zoomLevel:2;n[i]&&!e.isOverview()&&(n.preventDefault(),t.to({x:n.clientX,y:n.clientY,scale:d,pan:!1}))}))},destroy:function(){t.reset()}},t=function(){var e=1,n=0,o=0,i=-1,d=-1,l="transform"in document.body.style;function s(t,n){var o=r();if(t.width=t.width||1,t.height=t.height||1,t.x-=(window.innerWidth-t.width*n)/2,t.y-=(window.innerHeight-t.height*n)/2,l)if(1===n)document.body.style.transform="";else{var i=o.x+"px "+o.y+"px",d="translate("+-t.x+"px,"+-t.y+"px) scale("+n+")";document.body.style.transformOrigin=i,document.body.style.transform=d}else 1===n?(document.body.style.position="",document.body.style.left="",document.body.style.top="",document.body.style.width="",document.body.style.height="",document.body.style.zoom=""):(document.body.style.position="relative",document.body.style.left=-(o.x+t.x)/n+"px",document.body.style.top=-(o.y+t.y)/n+"px",document.body.style.width=100*n+"%",document.body.style.height=100*n+"%",document.body.style.zoom=n);e=n,document.documentElement.classList&&(1!==e?document.documentElement.classList.add("zoomed"):document.documentElement.classList.remove("zoomed"))}function c(){var t=.12*window.innerWidth,i=.12*window.innerHeight,d=r();o<i?window.scroll(d.x,d.y-14/e*(1-o/i)):o>window.innerHeight-i&&window.scroll(d.x,d.y+(1-(window.innerHeight-o)/i)*(14/e)),n<t?window.scroll(d.x-14/e*(1-n/t),d.y):n>window.innerWidth-t&&window.scroll(d.x+(1-(window.innerWidth-n)/t)*(14/e),d.y)}function r(){return{x:void 0!==window.scrollX?window.scrollX:window.pageXOffset,y:void 0!==window.scrollY?window.scrollY:window.pageYOffset}}return l&&(document.body.style.transition="transform 0.8s ease"),document.addEventListener("keyup",(function(n){1!==e&&27===n.keyCode&&t.out()})),document.addEventListener("mousemove",(function(t){1!==e&&(n=t.clientX,o=t.clientY)})),{to:function(n){if(1!==e)t.out();else{if(n.x=n.x||0,n.y=n.y||0,n.element){var o=n.element.getBoundingClientRect();n.x=o.left-20,n.y=o.top-20,n.width=o.width+40,n.height=o.height+40}void 0!==n.width&&void 0!==n.height&&(n.scale=Math.max(Math.min(window.innerWidth/n.width,window.innerHeight/n.height),1)),n.scale>1&&(n.x*=n.scale,n.y*=n.scale,s(n,n.scale),!1!==n.pan&&(i=setTimeout((function(){d=setInterval(c,1e3/60)}),800)))}},out:function(){clearTimeout(i),clearInterval(d),s({x:0,y:0},1),e=1},magnify:function(e){this.to(e)},reset:function(){this.out()},zoomLevel:function(){return e}}}();export default function(){return e}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o():"function"==typeof define&&define.amd?define(o):(e="undefined"!=typeof globalThis?globalThis:e||self).RevealZoom=o()}(this,(function(){"use strict";
|
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).RevealZoom=t()}(this,(function(){"use strict";
|
||||||
/*!
|
/*!
|
||||||
* reveal.js Zoom plugin
|
* reveal.js Zoom plugin
|
||||||
*/var e={id:"zoom",init:function(e){e.getRevealElement().addEventListener("mousedown",(function(t){var n=/Linux/.test(window.navigator.platform)?"ctrl":"alt",i=(e.getConfig().zoomKey?e.getConfig().zoomKey:n)+"Key",d=e.getConfig().zoomLevel?e.getConfig().zoomLevel:2;t[i]&&!e.isOverview()&&(t.preventDefault(),o.to({x:t.clientX,y:t.clientY,scale:d,pan:!1}))}))}},o=function(){var e=1,t=0,n=0,i=-1,d=-1,s="WebkitTransform"in document.body.style||"MozTransform"in document.body.style||"msTransform"in document.body.style||"OTransform"in document.body.style||"transform"in document.body.style;function r(o,t){var n=l();if(o.width=o.width||1,o.height=o.height||1,o.x-=(window.innerWidth-o.width*t)/2,o.y-=(window.innerHeight-o.height*t)/2,s)if(1===t)document.body.style.transform="",document.body.style.OTransform="",document.body.style.msTransform="",document.body.style.MozTransform="",document.body.style.WebkitTransform="";else{var i=n.x+"px "+n.y+"px",d="translate("+-o.x+"px,"+-o.y+"px) scale("+t+")";document.body.style.transformOrigin=i,document.body.style.OTransformOrigin=i,document.body.style.msTransformOrigin=i,document.body.style.MozTransformOrigin=i,document.body.style.WebkitTransformOrigin=i,document.body.style.transform=d,document.body.style.OTransform=d,document.body.style.msTransform=d,document.body.style.MozTransform=d,document.body.style.WebkitTransform=d}else 1===t?(document.body.style.position="",document.body.style.left="",document.body.style.top="",document.body.style.width="",document.body.style.height="",document.body.style.zoom=""):(document.body.style.position="relative",document.body.style.left=-(n.x+o.x)/t+"px",document.body.style.top=-(n.y+o.y)/t+"px",document.body.style.width=100*t+"%",document.body.style.height=100*t+"%",document.body.style.zoom=t);e=t,document.documentElement.classList&&(1!==e?document.documentElement.classList.add("zoomed"):document.documentElement.classList.remove("zoomed"))}function m(){var o=.12*window.innerWidth,i=.12*window.innerHeight,d=l();n<i?window.scroll(d.x,d.y-14/e*(1-n/i)):n>window.innerHeight-i&&window.scroll(d.x,d.y+(1-(window.innerHeight-n)/i)*(14/e)),t<o?window.scroll(d.x-14/e*(1-t/o),d.y):t>window.innerWidth-o&&window.scroll(d.x+(1-(window.innerWidth-t)/o)*(14/e),d.y)}function l(){return{x:void 0!==window.scrollX?window.scrollX:window.pageXOffset,y:void 0!==window.scrollY?window.scrollY:window.pageYOffset}}return s&&(document.body.style.transition="transform 0.8s ease",document.body.style.OTransition="-o-transform 0.8s ease",document.body.style.msTransition="-ms-transform 0.8s ease",document.body.style.MozTransition="-moz-transform 0.8s ease",document.body.style.WebkitTransition="-webkit-transform 0.8s ease"),document.addEventListener("keyup",(function(t){1!==e&&27===t.keyCode&&o.out()})),document.addEventListener("mousemove",(function(o){1!==e&&(t=o.clientX,n=o.clientY)})),{to:function(t){if(1!==e)o.out();else{if(t.x=t.x||0,t.y=t.y||0,t.element){var n=t.element.getBoundingClientRect();t.x=n.left-20,t.y=n.top-20,t.width=n.width+40,t.height=n.height+40}void 0!==t.width&&void 0!==t.height&&(t.scale=Math.max(Math.min(window.innerWidth/t.width,window.innerHeight/t.height),1)),t.scale>1&&(t.x*=t.scale,t.y*=t.scale,r(t,t.scale),!1!==t.pan&&(i=setTimeout((function(){d=setInterval(m,1e3/60)}),800)))}},out:function(){clearTimeout(i),clearInterval(d),r({x:0,y:0},1),e=1},magnify:function(e){this.to(e)},reset:function(){this.out()},zoomLevel:function(){return e}}}();return function(){return e}}));
|
*/var e={id:"zoom",init:function(e){e.getRevealElement().addEventListener("mousedown",(function(o){var n=/Linux/.test(window.navigator.platform)?"ctrl":"alt",i=(e.getConfig().zoomKey?e.getConfig().zoomKey:n)+"Key",d=e.getConfig().zoomLevel?e.getConfig().zoomLevel:2;o[i]&&!e.isOverview()&&(o.preventDefault(),t.to({x:o.clientX,y:o.clientY,scale:d,pan:!1}))}))},destroy:function(){t.reset()}},t=function(){var e=1,o=0,n=0,i=-1,d=-1,l="transform"in document.body.style;function s(t,o){var n=r();if(t.width=t.width||1,t.height=t.height||1,t.x-=(window.innerWidth-t.width*o)/2,t.y-=(window.innerHeight-t.height*o)/2,l)if(1===o)document.body.style.transform="";else{var i=n.x+"px "+n.y+"px",d="translate("+-t.x+"px,"+-t.y+"px) scale("+o+")";document.body.style.transformOrigin=i,document.body.style.transform=d}else 1===o?(document.body.style.position="",document.body.style.left="",document.body.style.top="",document.body.style.width="",document.body.style.height="",document.body.style.zoom=""):(document.body.style.position="relative",document.body.style.left=-(n.x+t.x)/o+"px",document.body.style.top=-(n.y+t.y)/o+"px",document.body.style.width=100*o+"%",document.body.style.height=100*o+"%",document.body.style.zoom=o);e=o,document.documentElement.classList&&(1!==e?document.documentElement.classList.add("zoomed"):document.documentElement.classList.remove("zoomed"))}function c(){var t=.12*window.innerWidth,i=.12*window.innerHeight,d=r();n<i?window.scroll(d.x,d.y-14/e*(1-n/i)):n>window.innerHeight-i&&window.scroll(d.x,d.y+(1-(window.innerHeight-n)/i)*(14/e)),o<t?window.scroll(d.x-14/e*(1-o/t),d.y):o>window.innerWidth-t&&window.scroll(d.x+(1-(window.innerWidth-o)/t)*(14/e),d.y)}function r(){return{x:void 0!==window.scrollX?window.scrollX:window.pageXOffset,y:void 0!==window.scrollY?window.scrollY:window.pageYOffset}}return l&&(document.body.style.transition="transform 0.8s ease"),document.addEventListener("keyup",(function(o){1!==e&&27===o.keyCode&&t.out()})),document.addEventListener("mousemove",(function(t){1!==e&&(o=t.clientX,n=t.clientY)})),{to:function(o){if(1!==e)t.out();else{if(o.x=o.x||0,o.y=o.y||0,o.element){var n=o.element.getBoundingClientRect();o.x=n.left-20,o.y=n.top-20,o.width=n.width+40,o.height=n.height+40}void 0!==o.width&&void 0!==o.height&&(o.scale=Math.max(Math.min(window.innerWidth/o.width,window.innerHeight/o.height),1)),o.scale>1&&(o.x*=o.scale,o.y*=o.scale,s(o,o.scale),!1!==o.pan&&(i=setTimeout((function(){d=setInterval(c,1e3/60)}),800)))}},out:function(){clearTimeout(i),clearInterval(d),s({x:0,y:0},1),e=1},magnify:function(e){this.to(e)},reset:function(){this.out()},zoomLevel:function(){return e}}}();return function(){return e}}));
|
||||||
|
|
Loading…
Reference in New Issue