More natural zooming on block level elements
Switching a `display: block` element to `display: inline-block` allows calculating the bounds based on the contents of the div rather than the entire container (which is often `width: 100%`). This provides a much more natural zoom, especially for paragraphs and code examples.
This commit is contained in:
		@@ -11,7 +11,17 @@
 | 
				
			|||||||
		if( event[ modifier ] && isEnabled ) {
 | 
							if( event[ modifier ] && isEnabled ) {
 | 
				
			||||||
			event.preventDefault();
 | 
								event.preventDefault();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			var bounds = event.target.getBoundingClientRect();
 | 
								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({
 | 
								zoom.to({
 | 
				
			||||||
				x: ( bounds.left * revealScale ) - zoomPadding,
 | 
									x: ( bounds.left * revealScale ) - zoomPadding,
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user