私は他の誰かがまとめたコードに取り組んでいます。アイデアは、1 つのページに複数のテーブルがあるということです。最初は画像だけですが、画像をクリックすると表全体が表示されます。テーブルは、ページのどこにいるかに応じてテーブルの位置を制御する div オーバーレイでラップされます。
スクリプトは基本的に、ページのどこにいるかを検出し、'top' 属性をインライン スタイルとして追加します。ピクセルは、クリックしたテーブルとページのどこにいるかによって異なります。IE7 / 8 を除くすべてのブラウザで問題なく動作します。
私は問題を解決しました.「トップ」属性がインラインスタイルとして追加されていません. IE7 / 8で、そこにトップを追加できるクラスを追加しようとしましたが、スタイルをそのように動的に追加することはできません。
とにかく、ここにいくつかのコードがあります:
top 属性を追加する JS のスニペット:
// Get the current browser size and scroll position
viewport_width = viewport().width;
viewport_height = viewport().height;
viewport_offsetx = window.pageXOffset;
viewport_offsety = window.pageYOffset;
$("#tablesorter_overlay").css("top", viewport_offsety);
table_instance = $("#tablesorter_" + $(this).attr("rel"));
table_instance.css("position", "absolute");
// Make a copy of this table so we'll have the original safe, and set it to be sorted. Add it to the overlay
new_table_instance = table_instance.clone().tablesorter();
new_table_instance.appendTo("#tablesorter_overlay");
new_table_instance.show();
// テーブルをクリックした後のテーブルとオーバーレイ HTML...
<div id="tablesorter_overlay" style="top: 2803px;" class="topclass">
<p class="tablesorter_overlay_close"><a href="#">X</a></p><table cellspacing="0" cellpadding="0" class="tablesorter generic" id="tablesorter_2" style="max-width: 95%; position: absolute;">
<thead>
<tr> etc..
**注: HTML コードは Firefox コードです。IE でも同じですが、'top' 属性はありません。
コードが不足していることはわかっていますが、問題が見つかったので、もう必要ないことを願っています。
ありがとう!
ジョシュ
答え*
function getScrollTop(){
if(typeof pageYOffset!= 'undefined'){
//most browsers
return pageYOffset;
}
else{
var B= document.body; //IE 'quirks'
var D= document.documentElement; //IE with doctype
D= (D.clientHeight)? D: B;
return D.scrollTop;
}
}