bootstrap table 实现固定悬浮table 表头并可以水平滚动

在开发项目中,需要将表格头部固定,而且表格大多数情况下是会水平滚动的。项目的css框架是bootstrap 3,故也可以叫做bootstrap table。

需要实现的是:表格头部固定,并且支持水平滚动

html code(source table):

<table id="top_fix_table" border="0" cellpadding="4" cellspacing="0" class="table table-hover">
    <thead>
        <tr id="table_head">
             <td>Test</td>
             ....
        </tr>
    </thead>
   <tbody>

   </tbody>
</table>

stylesheet code:

#fixed_table #fix_head{
    background: #FFFFFF;
    box-shadow: 0px 0px 5px #888888;
}

Javascript code:

<script type="text/javascript">
$(function(){
  var sourceTable = $("#top_fix_table");//table id
  var sourceTableHead = $("#table_head");//table thead tr id
  var headHeight = sourceTableHead.height();//table thead tr height
  var sourceTableWidth = sourceTable.outerWidth(); //get source table width
  //copy table and thead html tag from source table,
  $(‘body‘).append(‘<div id="shelter"><table id="fixed_table"  border="0" cellpadding="4" cellspacing="0" class="table table-hover"><thead></thead></table></div>‘);
  //only set top and left,beacuse i need the top bar can scroll left
  $("#shelter").css({‘height‘:headHeight,‘position‘:‘fixed‘,‘top‘:‘0‘,‘left‘:‘0‘});
  //set target table width equal source table width
  $("#fixed_table").css({‘width‘:sourceTableWidth+"px"});

  //only clone tr html and change thead tr id attr
  var targetHead = sourceTableHead.clone().attr(‘id‘,‘fix_head‘);
  targetHead.appendTo(‘#fixed_table thead‘);
  //mark target table thead td width,height equal source table thead td width,height
  $("#table_head td").each(function(index,value){
    var tempWidth = $(value).outerWidth();
    var tempHeight = $(value).outerHeight();
    $("#fixed_table td").eq(index).css({‘width‘:tempWidth+"px",‘height‘:tempHeight+"px"});
  });

  $(window).scroll(function(){
    //scroll left method
     var sl=-Math.max($(‘body‘).scrollLeft(),$(‘document‘).scrollLeft());
     $(‘#shelter‘).css("left",sl+‘px‘);
    var scroll_top = $(‘body‘).scrollTop() - sourceTable.offset().top;
    //control  show or hide
    if (scroll_top > 0) {
      $(‘#shelter‘).show();
    }else {
      $(‘#shelter‘).hide();
    }
  });

});
</script>

参考文档:

  1. css position:fixed时还能水平滚动,如何实现    实现了固定头部的水平滚动
  2. 网页制作中在头部固定悬浮table表头(thead)的方法  javascript 主要代码来源
  3. jquery outerHeight方法 outerWidth方法 获取元素实际宽度高度  学习获取元素实际宽度
时间: 2024-10-12 14:15:53

bootstrap table 实现固定悬浮table 表头并可以水平滚动的相关文章

网页制作中在头部固定悬浮table表头(thead)的方法

这两天接了一个需求,页面是这样的 然后需求是页面中的这个表格当页面向上滚动,且表格的表头到达窗口上方时,表头悬浮在页面的上方,表格正常滚动,这样表格内的数据可以随时看到表头内容. 一开始我认为这是极简单的,就当页面滚动,判断表头到窗口的距离,当=0的时候触发事件然后让表头position:fixed不就万事大吉了吗?于是我对漂亮又萌萌哒的产品妹子说,放心吧,这个简单的很一会就能完事,当时我的表情是这样的 但是当我开始写(首先你要知道,我是个js小白,表问我为什么...),问题就来了.首先,这个页

多表头固定demo--html Table

1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <title></title>

头部固定的table

<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8"> <title>头部固定table</title> <meta http-equiv="X-UA-Compatible" content="IE=Edge"> <meta name="viewport

jasper使用table组件设计复杂的表头

1.1 设计报表模板 1.1.1 新建模板DemoReport5.jrxml,去掉不需要的Band,保留Title,Page Header,Detail 1 , PageFooter.将组件Table拖入到Detail1 中,跳出Dataset窗口.选择 Create .. ,然后Next 1.1.2 给Dataset命名.选择 Createnew dateset ... ,然后Next 1.1.3 只保留Column Header,然后 Finish 1.1.4 点击Detail中的Table

HTML——动画效果:左侧固定悬浮栏(图标控制)

效果: 默认时: 点击按钮时 html: <!DOCTYPE html> <html> <head> <title>智能家居</title> <link href="images/xiaotubiaologo.ico" rel='icon' type='image/x-icon'/> <meta name="viewport" content="width=device-widt

bootstrap 框架里 固定居中问题

运用了bootstrap 框架 ,在栅格系统中占列数小于12,且需要居中显示并固定悬浮在最下方的div(设为divnei) ,可以在其外层嵌套一个div(设为divwai) ,可以设置divwai 为:{width:100%: position:fixed: left:0; bottom:0;text-align:center; } 设置divnei 为display:inline-block:

Failed to load slave replication state from table mysql.gtid_slave_pos: 1146: Table &#39;mysql.gtid_slave_pos&#39; doesn&#39;t exist

http://anothermysqldba.blogspot.com/2013/06/mariadb-1003-alpha-install-on-fedora-17.html MariaDB 10.0.3 Alpha install on Fedora 17 x86_64 MariaDB 10.0.3 Alphawas just released. So for those of you that recall my previous MariaDB 5.5 install post, I d

(原创) cocos2d-x 3.0+ lua 学习和工作(4) : 公共函数(5): 计算table元素个数:table.nums

这里的函数主要用来做:计算table元素个数.参考资料为quick_cocos. 星月倾心贡献~~~ 我们先看一段代码 local tbl = { [1] = 2, [2] = 2, [3] = 3 } print( "tbl length is " .. #tbl ) 这段代码是获得tbl的长度,即元素个数. 输出: tbl length is 3 拥有三个元素,没有问题.我们注意到元素的下标是,即key值是:1, 2, 3.即tbl[1], tbl[2], tbl[3].如果,我们

JQuery结合Ajax实现双击Table表格,使Table变成可编辑,并保存到数据库中

近期在做项目时,要实现通过双击Table表格的TR,使Table行变成可编辑,来实现修改数据并保存到数据库中的功能,无需多说,直接贴代码吧.希望能得到各位同仁指正. 1 function tdEdit(element, id) { 2 var i_a = "<input class='edit_td' type='text' style='height:30px; width:40px;' value='"; 3 var i_b = "'/>"; 4 v