class Watir::Element::Scroll

Public Class Methods

new(element) click to toggle source
# File lib/watir-scroll/element/scroll.rb, line 5
def initialize(element)
  @element = element
end

Public Instance Methods

by(left, top) click to toggle source

Scrolls by offset. @param [Fixnum] left Horizontal offset @param [Fixnum] top Vertical offset

# File lib/watir-scroll/element/scroll.rb, line 41
def by(left, top)
  @element.execute_script('window.scrollBy(arguments[0], arguments[1]);', Integer(left), Integer(top))
  self
end
to(param = :top) click to toggle source

Scrolls to element. @param [Symbol] param

# File lib/watir-scroll/element/scroll.rb, line 13
      def to(param = :top)
        args = case param
               when :top, :start
                 ['arguments[0].scrollIntoView();', @element]
               when :center
                 script = <<-JS
                   var bodyRect = document.body.getBoundingClientRect();
                   var elementRect = arguments[0].getBoundingClientRect();
                   var left = (elementRect.left - bodyRect.left) - (window.innerWidth / 2);
                   var top = (elementRect.top - bodyRect.top) - (window.innerHeight / 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)

        self
      end