diff --git a/plugin/zoom-js/zoom.js b/plugin/zoom-js/zoom.js
index a672af45490944ac782b762b4ee7c48fa217bc70..da2c10acbd1f78c257121992c5538fe3525400da 100644
--- a/plugin/zoom-js/zoom.js
+++ b/plugin/zoom-js/zoom.js
@@ -5,9 +5,21 @@
 	document.querySelector( '.reveal' ).addEventListener( 'mousedown', function( event ) {
 		var modifier = ( Reveal.getConfig().zoomKey ? Reveal.getConfig().zoomKey : 'alt' ) + 'Key';
 
+		var zoomPadding = 20;
+		var revealScale = Reveal.getScale();
+
 		if( event[ modifier ] && isEnabled ) {
 			event.preventDefault();
-			zoom.to({ element: event.target, pan: false });
+
+			var 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 ),
+				pan: false
+			});
 		}
 	} );