Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/380.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript iOS div momentum无固定高度滚动(通过ajax加载内容)?_Javascript_Css_Ios_Jquery - Fatal编程技术网

Javascript iOS div momentum无固定高度滚动(通过ajax加载内容)?

Javascript iOS div momentum无固定高度滚动(通过ajax加载内容)?,javascript,css,ios,jquery,Javascript,Css,Ios,Jquery,我正在创建一个iOS网络应用程序,它有一个固定的div(比如说200pxheight),并且里面的内容会滚动。我不喜欢默认的iOS滚动,因为它不像你只需向下滑动网页就能找到的本机滚动(iOS中的本机滚动有动量,而overflow的默认滚动没有动量) 我正在尝试滚动的div具有以下特性: 设定宽度 动态高度(通过AJAX的内容) 使用jqueryajax将内容从外部网站加载到div,并且可以选择重新加载AJAX请求。这意味着,根据加载页面中的内容量,div的高度将发生变化 在iOS中,div没有设

我正在创建一个iOS网络应用程序,它有一个固定的div(比如说
200px
height),并且里面的内容会滚动。我不喜欢默认的iOS滚动,因为它不像你只需向下滑动网页就能找到的本机滚动(iOS中的本机滚动有动量,而
overflow
的默认滚动没有动量)

我正在尝试滚动的
div
具有以下特性:

  • 设定宽度
  • 动态高度(通过AJAX的内容)
  • 使用jqueryajax将内容从外部网站加载到
    div
    ,并且可以选择重新加载AJAX请求。这意味着,根据加载页面中的内容量,
    div
    的高度将发生变化

    在iOS中,
    div
    没有设置的情况下,我似乎找不到任何允许动量滚动的解决方案,我尝试了以下方法:

  • -webkit溢出滚动:触摸
  • 这些问题包括:

  • 这是我的第一个选择,因为它只是一个
    css
    标记,通常工作正常。这是新的,但有很多错误,包括一个交易破坏者为我的网络应用程序之一。如果将
    焦点放在
    输入
    元素上,页面将放大(即使
    meta
    标记设置为
    user scalable:no
    ),直到在文本框中键入文本后才会缩小,然后按
    3px
    关闭所有内容
  • 此解决方案滞后,需要固定高度。使用它的刷新功能太麻烦了,因为在重新加载AJAX请求、重新加载页面、隐藏元素等情况下需要调用它

  • TL;DR:除了
    -webkit溢出滚动
    iScroll
    之外,还有其他解决方案可以让我在iOS中使用动态高度(通过AJAX加载的内容)的div上使用动量滚动吗?

    我目前解决动态高度问题的方法是在DOM更新后设置高度。我使用以下代码执行此操作:

    document.getElementById('content').style.height = window.innerHeight - getPosition('loading')[1] + "px";
    
    在本例中,主DIV是“content”,我在该DIV的正上方有一个称为loading的span,它将该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以来,缩放功能已经得到了修复。

    我目前为克服动态高度问题所做的是在DOM更新后设置高度。我使用以下代码执行此操作:

    document.getElementById('content').style.height = window.innerHeight - getPosition('loading')[1] + "px";
    
    在本例中,主DIV是“content”,我在该DIV的正上方有一个称为loading的span,它将该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开始,变焦功能就得到了修复