Modified Zoom
Block dimension calculation is not accurate, so zoom is made on mouse coordinates Change default modifier to ctrl - alt don't work on Linux New parameter zoomLevel: default 2
This commit is contained in:
		@@ -3,31 +3,17 @@
 | 
			
		||||
	var isEnabled = true;
 | 
			
		||||
 | 
			
		||||
	document.querySelector( '.reveal .slides' ).addEventListener( 'mousedown', function( event ) {
 | 
			
		||||
		var modifier = ( Reveal.getConfig().zoomKey ? Reveal.getConfig().zoomKey : 'alt' ) + 'Key';
 | 
			
		||||
 | 
			
		||||
		var zoomPadding = 20;
 | 
			
		||||
		var revealScale = Reveal.getScale();
 | 
			
		||||
		var modifier = ( Reveal.getConfig().zoomKey ? Reveal.getConfig().zoomKey : 'ctrl' ) + 'Key';//cl
 | 
			
		||||
		var zoomLevel = ( Reveal.getConfig().zoomLevel ? Reveal.getConfig().zoomLevel : 2 );
 | 
			
		||||
 | 
			
		||||
		if( event[ modifier ] && isEnabled ) {
 | 
			
		||||
			event.preventDefault();
 | 
			
		||||
 | 
			
		||||
			var bounds;
 | 
			
		||||
			var originalDisplay = event.target.style.display;
 | 
			
		||||
 | 
			
		||||
			// Get the bounding rect of the contents, not the containing box
 | 
			
		||||
			if( window.getComputedStyle( event.target ).display === 'block' ) {
 | 
			
		||||
				event.target.style.display = 'inline-block';
 | 
			
		||||
				bounds = event.target.getBoundingClientRect();
 | 
			
		||||
				event.target.style.display = originalDisplay;
 | 
			
		||||
			} else {
 | 
			
		||||
				bounds = event.target.getBoundingClientRect();
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			zoom.to({
 | 
			
		||||
				x: ( bounds.left * revealScale ) - zoomPadding,
 | 
			
		||||
				y: ( bounds.top * revealScale ) - zoomPadding,
 | 
			
		||||
				width: ( bounds.width * revealScale ) + ( zoomPadding * 2 ),
 | 
			
		||||
				height: ( bounds.height * revealScale ) + ( zoomPadding * 2 ),
 | 
			
		||||
				x: event.clientX - window.innerWidth / (zoomLevel * 2),//cl
 | 
			
		||||
				y: event.clientY - window.innerHeight / (zoomLevel * 2),
 | 
			
		||||
				width: window.innerWidth / zoomLevel,
 | 
			
		||||
				height: window.innerHeight / zoomLevel,
 | 
			
		||||
				pan: false
 | 
			
		||||
			});
 | 
			
		||||
		}
 | 
			
		||||
@@ -283,6 +269,3 @@ var zoom = (function(){
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
})();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user