Javascript 固定了可滚动div中的标题表,其大小等于';表头列宽';和';内容列宽度';

Javascript 固定了可滚动div中的标题表,其大小等于';表头列宽';和';内容列宽度';,javascript,jquery,css,html,Javascript,Jquery,Css,Html,我有一个大桌子在一个div里面,上面有scroll-x和scroll-y。我想要的是,在y轴上滚动时,使表格标题固定 我可以将表格标题设置在div的顶部,但它与溢出-x无关。而且表头列宽需要与内容的列相同。 我怎样才能做到这一点呢?这里是一个演示 我研究了您的问题并找到了解决方案[我相信没有纯css解决方案存在。!]。另外,非常欢迎您对此进行优化 //Script <script> var maxw = 0; $(document).ready( function () {

我有一个大桌子在一个div里面,上面有scroll-x和scroll-y。我想要的是,在y轴上滚动时,使表格标题固定

我可以将表格标题设置在div的顶部,但它与溢出-x无关。而且表头列宽需要与内容的列相同。

我怎样才能做到这一点呢?

这里是一个演示

我研究了您的问题并找到了解决方案[我相信没有纯css解决方案存在。!]。另外,非常欢迎您对此进行优化

//Script

 <script>

 var maxw = 0;
 $(document).ready( function () {

  $('.Top2').bind('scroll', function(){
     $(".Top1").scrollLeft($(this).scrollLeft());
  });

      var len = $("table.head > tbody").find("> tr:first > td").length;
       for(i=0; i<len;i++) {
           maxval(i);
       maxw = 0 ;
       }     

   });

function maxval(index) {

    $("table").find('tr').each(function (i, el) {
                var $tds = $(this).find('td');
                w = $tds.eq(index).width(); 
                if(w>maxw){
                maxw = w; //Get max width for the column i
                }       
    });
   myf(maxw,index); // Set the css according to 'td'
}

function myf(maxw,index){
 $("table").find('tr').each(function (i, el) {
     var $tds =  $(this).find('td');
     $tds.eq(index).css("padding-right", maxw- ($tds.eq(index).width()));  // patch : Is any other way?
 });
}
   </script>
//脚本
var-maxw=0;
$(文档).ready(函数(){
$('.Top2').bind('scroll',function(){
$(“.Top1”).scrollLeft($(this.scrollLeft());
});
var len=$(“table.head>tbody”).find(“>tr:first>td”).length;
对于(i=0;imaxw){
maxw=w;//获取列i的最大宽度
}       
});
myf(最大值,索引);//根据“td”设置css
}
函数myf(maxw,索引){
$(“表”).find('tr')。每个(函数(i,el){
var$tds=$(this.find('td');
$tds.eq(index).css(“右填充”,maxw-($tds.eq(index.width()));//补丁:还有其他方法吗?
});
}
同时检查我的更新。

这是一个演示

我研究了您的问题并找到了解决方案[我相信没有纯css解决方案存在。!]。另外,非常欢迎您对此进行优化

//Script

 <script>

 var maxw = 0;
 $(document).ready( function () {

  $('.Top2').bind('scroll', function(){
     $(".Top1").scrollLeft($(this).scrollLeft());
  });

      var len = $("table.head > tbody").find("> tr:first > td").length;
       for(i=0; i<len;i++) {
           maxval(i);
       maxw = 0 ;
       }     

   });

function maxval(index) {

    $("table").find('tr').each(function (i, el) {
                var $tds = $(this).find('td');
                w = $tds.eq(index).width(); 
                if(w>maxw){
                maxw = w; //Get max width for the column i
                }       
    });
   myf(maxw,index); // Set the css according to 'td'
}

function myf(maxw,index){
 $("table").find('tr').each(function (i, el) {
     var $tds =  $(this).find('td');
     $tds.eq(index).css("padding-right", maxw- ($tds.eq(index).width()));  // patch : Is any other way?
 });
}
   </script>
//脚本
var-maxw=0;
$(文档).ready(函数(){
$('.Top2').bind('scroll',function(){
$(“.Top1”).scrollLeft($(this.scrollLeft());
});
var len=$(“table.head>tbody”).find(“>tr:first>td”).length;
对于(i=0;imaxw){
maxw=w;//获取列i的最大宽度
}       
});
myf(最大值,索引);//根据“td”设置css
}
函数myf(maxw,索引){
$(“表”).find('tr')。每个(函数(i,el){
var$tds=$(this.find('td');
$tds.eq(index).css(“右填充”,maxw-($tds.eq(index.width()));//补丁:还有其他方法吗?
});
}

同时检查我的更新。

发布您的源代码,以便我们更好地了解您的需求。很抱歉,这是一个大代码。我需要编辑很多,使它更容易张贴在这里。我现在将编辑这个问题。发布你的源代码,让我们更好地了解你想要什么。很抱歉,这是一个大代码。我需要编辑很多,使它更容易张贴在这里。我现在编辑这个问题。