2017-01-19 3 views
0

私は位置使って、トップの位置に修正しよう:相対、トップの位置はサファリ/ IE遅れ

$(document).ready(function() { 
    var container = $(".container"); 

    container.css("overflow-y", "auto"); 
    container.css("overflow-x", "hidden"); 

    container.on("scroll", function() { 
     $("table", this).css("overflow-x", "hidden"); 
     $("th", this).css("position", "relative"); 
     $("th", this).css("z-index", 1); 
     $("th", this).css("top", this.scrollTop + "px"); 
    }); 
}); 

それはクロム、Firefoxのが、SafariとIEにはかなりうまく機能https://jsfiddle.net/hth4Ly7q/2/ 問題の例スクロールするときに遅れて、多分それがサファリでどのように修正できるのか知っていますか? 実際のテーブルは非常に複雑で、その場で列の幅を計算するため、絶対/固定の位置を使用していません。

答えて

0

これは私がSafariで常に抱えていた問題です。完全には解決できません。 "mousewheel"イベントを追加すると少しは役に立ちますが、問題は解決しません。

1

私はEdgeとIEで試しました。それは大丈夫です。 https://jsfiddle.net/55cynfLg/

function setTh(){ 
var container = $(".container"); 
$("table", this).css("overflow-x", "hidden"); 
$("th", this).css("z-index", 1); 
container.find("th").each(function(i){ 
    var td = container.find("tbody tr:eq(0) td:eq("+i+")"); 
    $(this).css({ 
    "width": td.width(), 
    "left": td.offset().left 
    }); 
});} 
関連する問題