RESOLVED CONFIGURATION CHANGED106062
Nested sticky position elements incorrectly repositioned on scrolling
https://bugs.webkit.org/show_bug.cgi?id=106062
Summary Nested sticky position elements incorrectly repositioned on scrolling
Beth Dakin
Reported 2013-01-03 16:03:43 PST
Nested sticky position elements do not always reposition properly on scroll in today's TOT. See attached test case. The inner object scrolls correctly up until the point when it is supposed to "stick" and then it starts doing the wrong thing. See related: https://bugs.webkit.org/show_bug.cgi?id=105475 and http://trac.webkit.org/changeset/138758
Attachments
Test case (8.04 KB, text/html)
2013-01-03 16:04 PST, Beth Dakin
no flags
Difference in nested sticky positioning for viewport and internal scrolling (1.58 KB, text/html)
2018-12-29 11:54 PST, jonjohnjohnson
no flags
Beth Dakin
Comment 1 2013-01-03 16:04:30 PST
Created attachment 181247 [details] Test case
Radar WebKit Bug Importer
Comment 2 2013-01-03 16:05:11 PST
jonjohnjohnson
Comment 3 2018-04-24 06:59:08 PDT
I've discovered an example of "nested sticky scrolling elements" that does behave/paint seamlessly in Safari, but cannot figure out why your original test case is still buggy. http://output.jsbin.com/nibenel/1
jonjohnjohnson
Comment 4 2018-04-26 20:51:54 PDT
Seems to only be an issue when scrolling the documentElement.
jonjohnjohnson
Comment 5 2018-12-29 11:54:40 PST
Created attachment 358139 [details] Difference in nested sticky positioning for viewport and internal scrolling Left side, scrolls internal fixpos scroll container Right side, scrolls viewport/root scroll container Right side only positions nested sticky position element when relayout is forced, (resizing window or scrolling fixed element will kick it into gear) instead of positioning correctly while scrolling itself. Easy to see differences when scrolling case in current version of blink.
jonjohnjohnson
Comment 6 2019-05-17 06:50:47 PDT
Also, hoping when this gets fixed that the left side internal scroller of this test case... https://bugs.webkit.org/attachment.cgi?id=358139 ...doesn't exhibit jittering when it's outer sticky el is stuck but nested sticky el is still unconstrained (in flow), like currently seen on iOS Safari. Seems like the hardware accelerated scrollers are having issues talking back n forth with frame rate offset position. :/
Simon Fraser (smfr)
Comment 7 2019-06-30 17:57:23 PDT
This seems to work fine now.
jonjohnjohnson
Comment 8 2019-06-30 22:18:38 PDT
(In reply to Simon Fraser (smfr) from comment #7) > This seems to work fine now. Can you share with us which version of macOS/iOS Safari you are using, because when I load this link in iOS 12.3.1 Safari... https://bugs.webkit.org/attachment.cgi?id=358139 ...the scroller on the right doesn't work fine. That's the viewport/root scroller and it sadly seems to require a relayout to get the inner sticky offset to behave correctly. I've commented on this twice above and it's always discouraging when comments are seemingly ignored when one takes their time to try and help aid in remedying your bugs. :(
Simon Fraser (smfr)
Comment 9 2019-07-01 11:20:05 PDT
Sorry, I should have clarified. I tested in Safari Tech Preview 86.
supermoos
Comment 10 2020-10-14 05:51:58 PDT
This seems fixed on desktop safari 14, but on iOS 14.0.1 the test case still exhibits the samme buggy / laggy update for the viewport scrolling nested sticky elements - a noticeable delay to the sticking behaviour on the nested sticky element. The nested sticky element only get's the correct position when momentum scroll of the viewport comes to a halt.
Note You need to log in before you can comment on or make changes to this bug.