Sha256: f7ba9490008bdd1e036fe595daed067c01663453c0e540dd9fa80a5579bd447b

Contents?: true

Size: 1.03 KB

Versions: 2

Compression:

Stored size: 1.03 KB

Contents

module Watir
  class Element
    class Scroll

      def initialize(element)
        @element = element
      end

      #
      # Scrolls to element.
      # @param [Symbol] param
      #
      def to(param = :top)
        args = case param
               when :top, :start
                 ['arguments[0].scrollIntoView();', @element]
               when :center
                 script = <<-JS
                   var elementRect = arguments[0].getBoundingClientRect();
                   var top = elementRect.top - (window.innerHeight / 2);
                   var left = elementRect.left - (window.innerWidth / 2);
                   window.scrollTo(left, top);
                 JS
                 [script, @element]
               when :bottom, :end
                 ['arguments[0].scrollIntoView(false);', @element]
               else
                 raise ArgumentError, "Don't know how to scroll element to: #{param}!"
               end

        @element.browser.execute_script(*args)
      end

    end # Scroll
  end # Element
end # Watir

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
watir-scroll-0.3.0 lib/watir-scroll/element/scroll.rb
watir-scroll-0.2.0 lib/watir-scroll/element/scroll.rb