持续充电 2019-08-09 15:34 采纳率: 0%
浏览 729

表格前两列固定 使用td相对定位 边框消失

表格需要前两列固定 给td做了相对定位“position":"relative","top":"0px","left":left,"background-color":"rgb(239, 239, 239)"
但是当左右滚动时 前两列的边框会不见,网上看了 网友提供的方法说是给td加 background-clip: border-box;貌似没有什么用,求各位大佬解救。

function createGrid(data) {
    $("#gridContainer").empty();
    $(".gridItem").css("windth",window.innerWidth);
    var tabWidth = data[0].data.length * 76 + 120;
    var time = [];
    var name = $("#measureType").find(".btnClick").eq(0).text();
    var yAxisName = name + unitMap[name];
    time.push("柜面名称","回路名称");
    time = time.concat(data[0].xAxis);

    var $table = $("<table id='dataTable' style='border-collapse:collapse;width:"+tabWidth+"px'></table>");
    var $tbody = $("<tbody></tbody>")
    var $timeTr = $("<tr style='background-color: rgb(239, 239, 239);'></tr>");  
    for(var i = 0;i < time.length;i ++){  
        var tdWidth = 120;
        if(i <= 1) {
            tdWidth = 120;
        } else {
            tdWidth = 76;
        }
        var $td = $("<td style='width:"+tdWidth+"px'>" + time[i] + "</td>")
        $timeTr.append($td);
        $tbody.append($timeTr);
    }

    for( var len=0; len<data.length;len++){   
        var value=[];
        //var arr=data[len].title.split(",");
        value.push(data[len].title[0],data[len].title[1]);   
        value = value.concat(data[len].data);
        var $valueTr = $("<tr></tr>"); 
    for(var i = 0;i < time.length;i++){              
        var tdWidth = 120;
        if(i <= 1) {
            tdWidth = 120;
        } else {
            tdWidth = 76;
        }
        if(i==1){
           var $td = $("<td style='width:"+tdWidth+"px; width:120px; color:blue;cursor:pointer'  onclick='openDetailView("+'"'+data[len].kgId+'"'+","+'"'+data[len].pgId+'"'+","+'"'+data[len].stationId+'"'+")'>" + value[i] + "</td>")
        }
        else
            var $td = $("<td style='width:"+tdWidth+"px'>" + value[i] + "</td>")
        $valueTr.append($td);
        $tbody.append($valueTr);
      }   
    }
    $table.append($tbody);
    $("#gridContainer").append($table);   
}
$("#gridContainer").scroll(function(){//给table外面的div滚动事件绑定一个函数
var left=$("#gridContainer").scrollLeft();//获取滚动的距离
var trs=$("#gridContainer table tr");//获取表格的所有tr
   trs.each(function(i){//对每一个tr(每一行)进行处理
//获得每一行下面的所有的td,然后选中下标为0的,即第一列,设置position为相对定位
//相对于父div左边的距离为滑动的距离,然后设置个背景颜色,覆盖住后面几列数据滑动到第一列下面的情况
//如果有必要也可以设置一个z-index属性
       if(i==0){
          $(this).children().eq(0).css({"position":"relative","top":"0px","left":left,"background-color":"rgb(239, 239, 239)"});
          $(this).children().eq(1).css({"position":"relative","top":"0px","left":left,"background-color":"rgb(239, 239, 239)"});
       }
       else
           {
           $(this).children().eq(0).css({"position":"relative","top":"0px","left":left,"background-color":"white"});
           $(this).children().eq(1).css({"position":"relative","top":"0px","left":left,"background-color":"white"});
           }
    });
});
  • 写回答

1条回答 默认 最新

  • 关注
    评论

报告相同问题?

悬赏问题

  • ¥15 运筹学中在线排序的时间在线排序的在线LPT算法
  • ¥30 求一段fortran代码用IVF编译运行的结果
  • ¥15 深度学习根据CNN网络模型,搭建BP模型并训练MNIST数据集
  • ¥15 lammps拉伸应力应变曲线分析
  • ¥15 C++ 头文件/宏冲突问题解决
  • ¥15 用comsol模拟大气湍流通过底部加热(温度不同)的腔体
  • ¥50 安卓adb backup备份子用户应用数据失败
  • ¥20 有人能用聚类分析帮我分析一下文本内容嘛
  • ¥15 请问Lammps做复合材料拉伸模拟,应力应变曲线问题
  • ¥30 python代码,帮调试,帮帮忙吧