iScroll 获取父级 Div 的高度

iScroll getting height of parent Div

我在一个项目中使用 iScroll 并得到一个 starnge 行为,其中 iScroll 从父 div 获取高度,我希望它使用我传入的 div 的高度它。

我设法在 jsFiddle 中重现了这个:http://jsfiddle.net/wjtbxpmc/

代码基本上是:

function findClosest(el, selector) { // this is just to find closest parent by class
    var isClass = selector.indexOf('.') == 0;
    if (isClass) while ((el = el.parentElement) && !el.classList.contains(selector.slice(1)));
    else while ((el = el.parentElement) && el.tagName.toLowerCase() != selector);
    return el;
}

var table = document.querySelector('table');
for (var i = 0; i < 50; i++) {
    var tr = document.createElement('tr');
    var td = document.createElement('td');
    td.innerHTML = 'Line ' + i;
    tr.appendChild(td);
    table.appendChild(tr);

}

var scrollDiv = findClosest(table, '.scrollable');
new IScroll(scrollDiv, {
    mouseWheel: true,
    scrollbars: true,
    click: true
});
#wrapper {
    height: 80vmin;
}
.scrollable {
    height: 63vmin;
    margin-bottom: 3vmin;
    overflow: hidden;
}
div {
    padding: 2vmin;
    border: 1px solid #ccf;
}
<script src="http://lab.cubiq.org/iscroll5/build/iscroll.js"></script>
    <div id="wrapper">
        <div class="scrollable">
            <table></table>
        </div>
        <div>Srcoll bar should be above this div...</div>
    </div>

好的,似乎将 position: relative; 添加到我的 .scrollable 中解决了这个问题。

如果这不是办法,欢迎提供更多答案。