【发布时间】:2018-05-17 13:59:41
【问题描述】:
我有一些表格标题,我计划在用户向下滚动页面时将它们设置为粘性(固定),但它们当前在激活粘性时会缩小,我希望它们继承标题的宽度,但它们会缩小到目前文本的大小。 我的 JS:
$(document).ready(function() {
var stickyNavTop = $('.th').offset().top;
SOLUTION:
$(".th th").each(function(){$(this).width($(this).width());});
$('.th').width($('.th').width());
var stickyNav = function(){
var scrollTop = $(window).scrollTop();
if (scrollTop > stickyNavTop) {
$('.th').addClass('sticky');
} else {
$('.th').removeClass('sticky');
}
};
stickyNav();
$(window).scroll(function() {
stickyNav();
});
});
我的 HTML:
<table class="mGrid" cellspacing="0" rules="all" border="1" id="1"
style="width:98%;border-collapse:collapse;">
<tr class="th">
<th scope="col">Membership No.</th>
<th scope="col">Surname</th>
<th scope="col">Other Name(s)</th>
</tr>
<tr>
<td>
<div id="2" class="formInput">
<label for="2">Membership No.</label>
<input name="2" type="text" value="AH6973" id="2"
class="required" style="width:60px;" />
</div>
</td>
<td>
<div id="3" class="formInput">
<label for="3">Surname</label>
<input name="3" type="text" value="CARTER" id="3"
style="width:100px;" />
</div>
</td>
<td>
<div id="4" class="formInput">
<label for="4">Other Name(s)</label>
<input name="4" type="text" value="RAYMOND" id="4"
style="width:150px;" />
</div>
</td>
</tr>
</table>
我的 CSS:
.sticky {
position: fixed;
width: 100%;
top: 0;
z-index: 100;
border-top: 0;
color: #fff !important;
background: #666;
border-left: solid 1px #525252;
font-size: 1.0em;
}
(这个模型和header样式一样,只是宽度缩小到现在适合文本的宽度。我试图编辑header样式,但它显然是只读的"'HeaderStyle' property is read-only and cannot be set."
【问题讨论】:
-
我们不想要您的 ASP,我们想要您生成的 HTML 标记...这是前端的东西我的朋友。
-
无论如何我相信这是不可能的。我试过一次。我建议您在页面顶部滚动时创建一个绝对定位元素。
-
嗨,Alvaro,我现在已经用 HTML 替换了 .aspx,我认为这很难做到,但并不认为这是不可能的!
-
好吧,正如我所说,我会做一个绝对定位的元素,而不是试图打破表格。您尝试应用的固定位置将断开与表格的任何连接,因此您需要应用样式以适应表格结构,这就像...创建我建议的元素。
标签: javascript jquery html css