Trigger.IO动量滚动

时间:2012-10-16 13:33:28

标签: ios scroll trigger.io smooth-scrolling momentum

是否可以将动量/ intertia滚动添加到trigger.io包装的HTML5 iOS应用中?

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

是否可以更改此行为并使其更像原生?我已经尝试过跟随these iOS momentum scrolling instructions并修改CSS,如下所示,但这不起作用:

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

作为一种解决方法,我觉得我可以在我的webview中使用intertia-emulating JS库,但是如果可能的话我想避免使用此选项。

提前致谢!

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

是。尝试Hojoki,你可以看到动态滚动: https://itunes.apple.com/us/app/hojoki/id525010205?mt=8

您无需执行任何特殊操作即可在iOS中启用动量滚动功能。如果您没有看到它,那么您使用的某些样式或第三方库很可能与之相关。

答案 2 :(得分:0)

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

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

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