3

是否可以将动量/惯性滚动添加到滚动

我目前正在构建一个基本应用程序,并注意到 Webview 在滚动内容(iOS 6;iPhone 5)时不会响应滑动动作的动量。换句话说,慢速滑动快速滑动最终会滚动到 Web 视图的同一部分(不像原生应用程序,其中说快速滑动应该滚动到更远的部分)。

是否有可能改变这种行为并使其更像原生?我已经尝试按照这些 iOS 动量滚动指令并修改 CSS,如下所示,但这不起作用:

html {
overflow: scroll;
-webkit-overflow-scrolling: touch;
}

作为一种解决方法,我觉得我可能会在我的 web 视图中使用 intertia 模拟 JS 库,但是如果可能的话,我想避免这个选项。

提前致谢!

4

3 回答 3

2

我对您的应用程序的 css 了解不多,但-webkit-overflow-scrolling: touch;只会将触摸滚动惯性赋予视口中具有固定高度/宽度的固定或绝对元素。应用-webkit-overflow-scrolling: touch到 body 或 html 元素只有在你做了类似的事情时才有效

body {
    position:fixed;
    top:0;
    right:0;
    bottom: 0;
    left: 0;
    overflow: auto;
    -webkit-overflow-scrolling: touch;
}

我们在触发器应用程序中使用它来模拟 UITableView

于 2012-12-16T08:17:27.763 回答
1

是的。试试 Hojoki,您可以在其中看到动量滚动: https ://itunes.apple.com/us/app/hojoki/id525010205?mt=8

你不需要做任何特别的事情来在 iOS 中启用动量滚动。如果您没有看到它,那么您使用的某些样式或第 3 方库很可能受到了它的干扰。

于 2012-10-24T19:28:47.447 回答
0

是的。我已经设法用 iScroll 实现它,但不得不修改库。我真的不推荐-webkit-overflow-scrolling: touch,因为它不会在发生动量滚动时呈现任何 DOM 更改。因此,如果您因元素滚动而重新调整元素,它看起来很糟糕。

这是我的存储库,我在其中添加了一个新回调onScrolling()以在 iScroll 中发生滚动动画时发出警报:https ://github.com/simpleshadow/iscroll/blob/master/src/iscroll.js

这是我在 Trigger.io 应用程序中使用的一个示例,我在动量和触摸滚动期间更改 div 的高度:http: //jsfiddle.net/simpleshadow/wQQEM/22/

于 2013-04-02T08:17:19.427 回答