Web サイトの永続ヘッダーを作成しようとしています。動作しない次のコードを書きました。デバッグを行っているときに、div の正しい位置を読み取ることさえできないことがわかりました。これが問題です。コードは次のとおりです。
<script>
function UpdateTableHeaders() {
/*var el = $("#top_menu", this);
var offset = el.offset();
var scrollTop = $(window).scrollTop();
var floatingHeader = $(".floatingHeader", this);
if (scrollTop > offset.top) {
floatingHeader.css(
"visibility", "visible"
);
} else {
floatingHeader.css(
"visibility", "hidden"
);
}; */
//following lines is the code I have tried in turns to see if it can actually read the correct position or not
$("#content").append( "position top:" + $('#top_menu').position().top);
$("#content").append( "position top:" + $('#top_menu').offset().top);
}
// DOM Ready
$(function() {
var clonedHeaderRow;
clonedHeaderRow = $("#top_menu", this);
clonedHeaderRow
.before(clonedHeaderRow.clone())
.addClass("floatingHeader");
$(window)
.scroll(UpdateTableHeaders)
.trigger("scroll");
});
ただし、出力された答えは正しくないようです。ページをスクロールしたときの出力は次のとおりです。
position top:101.45001220703125position top:101.41668701171875position top:101.41668701171875position top:101.04998779296875position top:101.16668701171875position top:101.39999389648438position top:100.63333129882812position top:100.98333740234375position top:101.33331298828125position top:100.79998779296875position top:101.21665954589844position top:101.10000610351562position top :100.63333129882812position top:101.05000305175781position top:100.93333435058594position top:101.23333740234375position top:101.41667175292969position top:100.60000610351562position top:100.71665954589844position top:101.18333435058594position top:100.53334045410156position top:101.23333740234375position top:101.35000610351562position top:100.69999694824219position top:101.05000305175781上段:100.51666259765625上段:100.63333129882812上段:100.86666870117188位置トップ:101.33332824707031位置トップ:100.91667175292969
100前後で変動します。どこで間違ったのか誰か教えてもらえますか?
助けてくれてありがとう!