X
Tryk her for at gå til webstedets mobilversion.

Supportforum

Scrollbar (unpredictably) stops working on PC

Skrevet

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.

Valgt løsning

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

Læs dette svar i sammenhæng 0

Yderligere systemdetaljer

Program

  • User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36

Yderligere information

Luk
FredMcD
  • Top 10 Contributor
4260 løsninger 59653 svar

That was very good work. Well done.

That was very good work. Well done.