   # If we scroll, and there's already a selected element, and that element goes out of the viewport, then we
   # select the top-most visible selectable element.
   onScroll: do ->
-    delay = 50
+    delay = 100
     timer = null
     previousPageYOffset = pageYOffset
 
     cancel = ->
-      if timer
-        clearTimeout timer; timer = null
+      clearTimeout timer if timer
+      timer = null
 
     (event, clear = false) ->
       # Figure out the direction of the last scroll.  If we're at or close to the top of the window, then we

          characterData: true
          subtree: true
        observeFunction = (mutations) =>
          if Common.isDisplayed element
            # We could probably be more selective as to the types of mutations for which we re-select the
            # current element.
            @selectElement element, false
          else
            @clearSelection()
      else
        observeFunction = null

      unless clear
        timer = Common.setTimeout delay, =>
          timer = null
          if @element
            unless Common.isInViewport(@element) and Common.isDisplayed @element
              @clearSelection()
          unless @element
            if element = (ele for ele in @getElements direction when Common.isInViewport ele)[0]
              @selectElement element, false

