 		# If any of the Observer options change, re-init.
 		inViewportRootMargin: -> @reInitInViewportMixin()
 		inViewportRoot: -> @reInitInViewportMixin()
-		inViewportThresholdWithMax: (now, old) -> 
-			
+		inViewportThresholdWithMax: (now, old) ->
+
 			# In IE, this is kept getting retriggered, to doing a manual comparison
 			# of old and new before deciding whether to take action.
 			@reInitInViewportMixin() unless now.toString() == old.toString()

					else undefined
				rootMargin: @inViewportRootMargin
				threshold: @inViewportThresholdWithMax
			
			# Start listening
			@inViewportObserver.observe @$el
		
		# Remove listeners
		removeInViewportHandlers: ->

			# Don't remove twice
			return unless @inViewport.listening
			@inViewport.listening = false
			
			# Destroy instance, which also removes listeners
			@inViewportObserver?.disconnect()
			delete @inViewportObserver

				boundingClientRect: target,
				rootBounds: root
			}]) ->

			# Get the maximum threshold ratio, which is less than 1 when the
			# element is taller than the viewport.
			@inViewport.maxThreshold = Math.min 1, root.height / target.height

			# Check if some part of the target is in the root box.  The isIntersecting
			# property from the IntersectionObserver was not used because it reports
			# the case where a box is immediately offscreen as intersecting, even
