How to disable smooth scrolling in Chrome

2019-05-05 16:58发布

I'm creating a web app (that's mostly focused on usage in Chrome), but the 'smooth scrolling' (I guess that's what it's called, the 'extra' scrolling like on IOS) of Chrome (when on mac) gets in the way.

Is there any way to disable this via javascript?

3条回答
2楼-- · 2019-05-05 17:40

What you're referring to as smooth scrolling is called overscroll bounce or rubber-band scrolling.

Disable iOS Overscroll but allow body scrolling

查看更多
干净又极端
3楼-- · 2019-05-05 17:40

Use Javascript to set the CSS style of the HTML and BODY tags.

Set their "overflow" property to "hidden".

查看更多
女痞
4楼-- · 2019-05-05 17:45

I was able to mitigate some rendering issues I was having with smooth scrolling by intercepting wheel events and moving the scrollTop/scrollLeft pixel positions "by hand":

function wheeled(event) {
  event.preventDefault()

  container.scrollTop += event.deltaY
  container.scrollLeft += event.deltaX
}

container.addEventListener('wheel', wheeled, { passive: false, capture: true })
// actual render code is in the `scrolled` handler because
// there are other wheel events in the code that adjust the scroll position
container.addEventListener('scroll', scrolled, { passive: true })
查看更多
登录 后发表回答