【发布时间】:2019-06-12 23:26:07
【问题描述】:
我正在尝试修复页面标题,表格标题位于顶部,并使页面的其余部分和表格主体随着页面滚动而移动。
我找到了一个可行的解决方案,它几乎可以完成预期的工作,方法是将表格标题复制到固定顶部,并在顶部的固定 div 下方滑动一个 div,但是正文列并不总是与标题对齐,并且与相同的大小。放大和缩小时,效果不佳:有时两个标题都可见或重叠。
//IE 9 compatible
var header = document.getElementById("zmyHeader");
var divResults = document.getElementById("divResults");
var h = header.getBoundingClientRect().bottom - header.getBoundingClientRect().top;
var divheadertbl = document.getElementById("headerResultTblFixedDiv");
if (divheadertbl) {
var hdivheadertbl = divheadertbl.getBoundingClientRect().bottom - divheadertbl.getBoundingClientRect().top;
divResults.style.paddingTop = (h - hdivheadertbl - 5) + "px";
}
window.onscroll = function() {
myFunction()
};
function myFunction() {
var Y = document.body.scrollLeft;
var j = Y;
var supportPageOffset = window.pageXOffset !== undefined;
var isCSS1Compat = ((document.compatMode || "") === "CSS1Compat");
var x = supportPageOffset ? window.pageXOffset : isCSS1Compat ? document.documentElement.scrollLeft : document.body.scrollLeft;
document.getElementById("zmyHeader").style.marginLeft = -x + "px";
}
.sticky {
position: fixed;
top: 0;
align: center;
width: 100%;
background-color: #fff;
}
<div ID="zmyHeader" class="sticky">
...
<div id="headerResultTblFixedDiv">
<table id="headerResultTblFixed">
<thead>
<tr>
<th>Col1Head</th>
<th>Col2Head</th>
</tr>
</thead>
</table>
</div>
</div>
<div id="divResults" style="padding:0px;width:100%">
<!---div resultados-->
<table id="resultsTable" width="967" border="0" align="center" cellpadding="2" cellspacing="0" bgcolor="white">
</tr>
<td></td>
</tr>
</table>
</div>
【问题讨论】:
-
你在
<tr>的开头有一个错字,也许这会有所帮助。 -
您是否尝试过使用 CSS:
#headerResultTblFixedDiv { position: fixed; top: 0;}?
标签: javascript html css