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