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
中解决了这个问题。
如果这不是办法,欢迎提供更多答案。
我在一个项目中使用 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
中解决了这个问题。
如果这不是办法,欢迎提供更多答案。