iOS divdynamic滚动没有固定的高度(内容通过ajax加载)?

我正在创build一个具有固定的div(比如说200px高度)的iOS web应用程序以及该滚动内容。 我不喜欢默认的iOS滚动,因为它不像通过向下滑动浏览网页所发现的本地滚动(iOS中的本地滚动具有动量,而默认的overflow没有动量)。

我试图滚动的div有以下特质:

  1. 设置宽度
  2. dynamic高度(通过AJAX的内容)

使用jQuery AJAX将内容从外部网站加载到div ,并且可以select重新加载AJAX请求。 这意味着,取决于加载页面中的内容量, div的高度将会改变。

我似乎无法find任何解决scheme,允许dynamic滚动iOS的div没有一套,我已经尝试了以下内容:

  1. - webkit-overflow-scrolling: touch
  2. iScroll

和这些问题:

  1. 这是我的第一select,因为它只是一个css标签,通常工作正常。 这是新的,但有很多的错误,包括一个为我的networking应用程序的交易断路器。 如果您focus在一个input元素上,那么页面会放大(即使meta标记设置为user-scalable:no ),并且不会缩小,直到您在文本框中键入文本,然后所有内容都以3px
  2. 这个解决scheme是滞后的,高度需要固定。 使用它的刷新function太麻烦了,因为在重新加载AJAX请求,重新加载页面,隐藏元素等时需要调用它。

TL; DR:除了-webkit-overflow-scrollingiScroll ,还有什么解决scheme可以让我在iOS中使用dynamic高度(通过AJAX加载内容)的dynamic卷动吗?

目前我所做的克服dynamic高度问题的方法是在更新DOM之后设置高度。 我通过使用下面的代码来做到这一点:

 document.getElementById('content').style.height = window.innerHeight - getPosition('loading')[1] + "px"; 

在这个例子中,主DIV是'内容',我有一个跨越正在DIV之上的称为加载,它使用作为参考点,因为标题的大小取决于你的webapp的部分的变化。 下面是getPosition函数:

 function getPosition(who){ var e = document.getElementById(who); var position = {x:0,y:0}; while (e) { position.x += e.offsetLeft; position.y += e.offsetTop; e = e.offsetParent; } return [position.x , position.y];}; 

此外,我相信自iOS 5.0.1以来,缩放已经被修复。