mirror of
https://github.com/SerenityOS/serenity
synced 2024-10-02 06:04:15 +00:00
LibWeb: Implement Element::scroll_by(HTML::ScrollToOptions)
This commit is contained in:
parent
e5d03e382e
commit
e640a68733
|
@ -2159,10 +2159,22 @@ void Element::scroll_by(double x, double y)
|
|||
dbgln("FIXME: Implement Element::scroll_by({}, {})", x, y);
|
||||
}
|
||||
|
||||
// https://drafts.csswg.org/cssom-view/#dom-window-scrollby
|
||||
void Element::scroll_by(HTML::ScrollToOptions const&)
|
||||
// https://drafts.csswg.org/cssom-view/#dom-element-scrollby
|
||||
void Element::scroll_by(HTML::ScrollToOptions options)
|
||||
{
|
||||
dbgln("FIXME: Implement Element::scroll_by(ScrollToOptions)");
|
||||
// 1. Let options be the argument.
|
||||
// 2. Normalize non-finite values for left and top dictionary members of options, if present.
|
||||
auto left = HTML::normalize_non_finite_values(options.left);
|
||||
auto top = HTML::normalize_non_finite_values(options.top);
|
||||
|
||||
// 3. Add the value of scrollLeft to the left dictionary member.
|
||||
options.left = scroll_left() + left;
|
||||
|
||||
// 4. Add the value of scrollTop to the top dictionary member.
|
||||
options.top = scroll_top() + top;
|
||||
|
||||
// 5. Act as if the scroll() method was invoked with options as the only argument.
|
||||
scroll(options);
|
||||
}
|
||||
|
||||
bool Element::id_reference_exists(String const& id_reference) const
|
||||
|
|
|
@ -337,7 +337,7 @@ public:
|
|||
|
||||
void scroll(HTML::ScrollToOptions const&);
|
||||
void scroll(double x, double y);
|
||||
void scroll_by(HTML::ScrollToOptions const&);
|
||||
void scroll_by(HTML::ScrollToOptions);
|
||||
void scroll_by(double x, double y);
|
||||
|
||||
void register_intersection_observer(Badge<IntersectionObserver::IntersectionObserver>, IntersectionObserver::IntersectionObserverRegistration);
|
||||
|
|
Loading…
Reference in a new issue