-webkit溢出滚动:触摸,指定的宽度大时获取内容切断(-webkit-overflow-scro

2019-10-18 08:25发布

大内容,如表数千行的滚动DIV(见里面放的时候是被截断的CSS,IOS,iPad的,-webkit-溢出滚动:触摸错误,大量内容被切断 )

<div class="longList">
  <!-- table with thousands of rows -->
</div>

CSS:

.longList {overflow: auto; height: 550px; margin: 0 auto; -webkit-overflow-scrolling: touch;}

我解决了这个以下http://johanbrook.com/browsers/native-momentum-scrolling-ios-5/经过一番研究。

因此,增加的位置是:固定的解决了这个问题,但生下了一个新的问题:该表是填补了引入位置前,整个页面宽度:固定的,加入位置之后,它停止这样做。

更新的CSS:

    .longList {overflow: auto; height: 550px; margin: 0 auto; -webkit-overflow-scrolling: touch; position:fixed;}

我试图通过对DIV指定宽度(带班longList),但每当我在DIV指定任何宽度,我回到原来的问题,而现在表填满了整个页面(宽度方向)来解决它,内容被再次切断!

任何人都遇到像这样的情况来的?

Answer 1:

所以我发现,这个有效的解决方案。 我有两个iframe出现和的div嵌入式内容类似的问题。 我不知道有多好这个工程的内部框架,但对div的它似乎这样的伎俩。

在页面加载 ,同时出错的元素在页面上可见使用下面的代码行。 这迫使该元素的重绘/回流,它会显示的全部内容。

//Fix for mobile webkit browsers not rendering full content
$('.divWithContent').parent().hide().show(0);

您可能需要添加的包装只是为了股利或遇到的问题是,如果你没有一个已经IFRAME,这样你不闪烁或重建比你需要更多的内容。

样本结构:

<div class="wrapper">
    <div class="divWithContent">
    ...
    </div>
<div>

如果你的DIV是在页面加载可见,这里是你可以使用此解决方案的一种方式。 您可能需要添加一个轻微的延迟太:

$(document).ready( function() {
    $('.divWithContent').parent().hide().show(0);
}

如果元素当前处于隐藏状态,这将无法正常工作。 它似乎并不该元素必须是当前的设备视可见的,但它至少必须在页面上,而不是隐藏。



文章来源: -webkit-overflow-scrolling: touch, large content gets cut off when specifying a width