Search Support

Avoid support scams. We will never ask you to call or text a phone number or share personal information. Please report suspicious activity using the “Report Abuse” option.

Learn More

Scrollbar (unpredictably) stops working on PC

  • 21 replies
  • 1 has this problem
  • 8 views
  • Last reply by FredMcD

more options

I'm seeing a really weird issue - https://rs2018.raffworks.com/ - on Firefox PC only, after opening a couple of the items up, the scrollbar completely stops working. Sometimes one item, sometimes three or four. But then bang! the scrollbar just locks up completely and it's impossible to scroll the page.

Has anyone experienced anything like this? Firefox on macOS is fine.

I'm seeing a really weird issue - https://rs2018.raffworks.com/ - on Firefox PC only, after opening a couple of the items up, the scrollbar completely stops working. Sometimes one item, sometimes three or four. But then bang! the scrollbar just locks up completely and it's impossible to scroll the page. Has anyone experienced anything like this? Firefox on macOS is fine.

Chosen solution

OK - solved.

window.pageYOffset position on Firefox on my hybrid PC is being calculated as a double number, rather than an integer. This is known behaviour but I didn't know about it ;)

https://www.fxsitecompat.com/en-CA/docs/2017/scrollx-scrolly-pagexoffset-pageyoffset-now-return-double-instead-of-integer/

So when running a polyfill for window.scrollTo with "behaviour" set to "smooth" (which doesn't work on a number of browsers), the destination was sometimes not fully reached.

Say it was trying to scrollTo 635px - it would get to 634.9999991 - but as I was using strict equality checking ===, it never saw the loop as finished. Thus any attempt to manually scroll was overridden by the scrollTo loop.

Simply comparing the destination and current positions using Math.ceil has solved it.

Painful, but at least resolved. Much appreciate your help @FredMcD

Read this answer in context 👍 0

All Replies (1)

more options

That was very good work. Well done.

  1. 1
  2. 2