怎么用js控制html里的table让某列固定,实现类似Excel里列固定的效果
发布网友
发布时间:2022-04-27 03:50
我来回答
共2个回答
懂视网
时间:2022-04-19 10:58
代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>固定标题列、标题头table</title>
<style>
table{border-collapse:collapse;border-spacing:0px; width:100%; border:#000 solid 0px;}
table td{border:1px solid #000;height:25px; text-align:center; border-left:0px;}
table th{ background:#edd3d4; color:#a10333; border:#000 solid 1px; white-space:nowrap; height:21px; border-top:0px;border-left:0px;}
.t_left{width:30%; height:auto; float:left;border-top:1px solid #000;border-left:1px solid #000;}
/*t_r_content和cl_freeze高度相差20px, 高度为外观显示高度,可根据情况调整*/
.t_r_content{width:100%; height:220px; background:#fff; overflow:auto;}
.cl_freeze{height:200px;overflow:hidden; width:100%;}
/* width 调整左边标题列宽度(左侧外观显示宽度); 指定为width:auto 在Opera下显示有问题; height比 t_r_content 高度小20px*/
/* width 宽度为 右侧外观显示宽度 实际显示宽度大小为“t_r”宽度加上“cl_freeze”宽度 */
/* 如果显示不正常,调整 t_r的width 使其和t_left的width之和小于100%;等于100%时会有问题*/
.t_r{width:69.5%; height:auto; float:left;border-top:1px solid #000; border-right:#000 solid 1px;}
.t_r table{width:1700px;}
.t_r_title{width:1720px;}/*宽度比 t_r table 大20px (至少大20,小了滚动条滑到右侧显示有问题)*/
.t_r_t{width:100%; overflow:hidden;}
.bordertop{ border-top:0px;}
</style>
<script>
function aa(){
var a=document.getElementById("t_r_content").scrollTop;
var b=document.getElementById("t_r_content").scrollLeft;
document.getElementById("cl_freeze").scrollTop=a;
document.getElementById("t_r_t").scrollLeft=b;
}
</script>
</head>
<body>
<div style="width:100%">
<div class="t_left">
<div style="width:100%;">
<table>
<tr>
<th style="width:40%">账号</th>
<th style="width:60%">姓名</th>
</tr>
</table>
</div>
<div class="cl_freeze" id="cl_freeze">
<table>
<tr>
<td style="width:40%" class="bordertop">1</td>
<td style="width:60%" class="bordertop">1</td>
</tr>
<tr>
<td>2</td>
<td>2</td>
</tr>
<tr>
<td>3</td>
<td>3</td>
</tr>
<tr>
<td>4</td>
<td>4</td>
</tr>
<tr>
<td>5</td>
<td>5</td>
</tr>
<tr>
<td>6</td>
<td>6</td>
</tr>
<tr>
<td>7</td>
<td>7</td>
</tr>
<tr>
<td>8</td>
<td>8</td>
</tr>
<tr>
<td>9</td>
<td>9</td>
</tr>
<tr>
<td>10</td>
<td>10</td>
</tr>
<tr>
<td>11</td>
<td>11</td>
</tr>
<tr>
<td>12</td>
<td>12</td>
</tr>
<tr>
<td>13</td>
<td>13</td>
</tr>
<tr>
<td>14</td>
<td>14</td>
</tr>
<tr>
<td>15</td>
<td>15</td>
</tr>
<tr>
<td>16</td>
<td>16</td>
</tr>
<tr>
<td>17</td>
<td>17</td>
</tr>
<tr>
<td>18</td>
<td>18</td>
</tr>
<tr>
<td>19</td>
<td>19</td>
</tr>
<tr>
<td>20</td>
<td>20</td>
</tr>
</table>
</div>
</div>
<div class="t_r">
<div class="t_r_t" id="t_r_t">
<div class="t_r_title">
<table>
<tr>
<th width="10%">字段A</th>
<th width="20%">字段B</th>
<th width="10%">字段C</th>
<th width="20%">字段D</th>
<th width="20%">字段E</th>
<th width="20%">字段F</th>
</tr>
</table>
</div>
</div>
<div class="t_r_content" id="t_r_content" onscroll="aa()">
<table>
<tr>
<td width="10%" class="bordertop">1</td>
<td width="20%" class="bordertop">1</td>
<td width="10%" class="bordertop">1</td>
<td width="20%" class="bordertop">1</td>
<td width="20%" class="bordertop">1</td>
<td width="20%" class="bordertop">1</td>
</tr>
<tr>
<td>2</td>
<td>2</td>
<td>2</td>
<td>2</td>
<td>2</td>
<td>2</td>
</tr>
<tr>
<td>3</td>
<td>3</td>
<td>3</td>
<td>3</td>
<td>3</td>
<td>3</td>
</tr>
<tr>
<td>4</td>
<td>4</td>
<td>4</td>
<td>4</td>
<td>4</td>
<td>4</td>
</tr>
<tr>
<td>5</td>
<td>5</td>
<td>5</td>
<td>5</td>
<td>5</td>
<td>5</td>
</tr>
<tr>
<td>6</td>
<td>6</td>
<td>6</td>
<td>6</td>
<td>6</td>
<td>6</td>
</tr>
<tr>
<td>7</td>
<td>7</td>
<td>7</td>
<td>7</td>
<td>7</td>
<td>7</td>
</tr>
<tr>
<td>8</td>
<td>8</td>
<td>8</td>
<td>8</td>
<td>8</td>
<td>8</td>
</tr>
<tr>
<td>9</td>
<td>9</td>
<td>9</td>
<td>9</td>
<td>9</td>
<td>9</td>
</tr>
<tr>
<td>10</td>
<td>10</td>
<td>10</td>
<td>10</td>
<td>10</td>
<td>10</td>
</tr>
<tr>
<td>11</td>
<td>11</td>
<td>11</td>
<td>11</td>
<td>11</td>
<td>11</td>
</tr>
<tr>
<td>12</td>
<td>12</td>
<td>12</td>
<td>12</td>
<td>12</td>
<td>12</td>
</tr>
<tr>
<td>13</td>
<td>13</td>
<td>13</td>
<td>13</td>
<td>13</td>
<td>13</td>
</tr>
<tr>
<td>14</td>
<td>14</td>
<td>14</td>
<td>14</td>
<td>14</td>
<td>14</td>
</tr>
<tr>
<td>15</td>
<td>15</td>
<td>15</td>
<td>15</td>
<td>15</td>
<td>15</td>
</tr>
<tr>
<td>16</td>
<td>16</td>
<td>16</td>
<td>16</td>
<td>16</td>
<td>16</td>
</tr>
<tr>
<td>17</td>
<td>17</td>
<td>17</td>
<td>17</td>
<td>17</td>
<td>17</td>
</tr>
<tr>
<td>18</td>
<td>18</td>
<td>18</td>
<td>18</td>
<td>18</td>
<td>18</td>
</tr>
<tr>
<td>19</td>
<td>19</td>
<td>19</td>
<td>19</td>
<td>19</td>
<td>19</td>
</tr>
<tr>
<td>20</td>
<td>20</td>
<td>20</td>
<td>20</td>
<td>20</td>
<td>20</td>
</tr>
</table>
</div>
</div> </div>
</body>
</html>
热心网友
时间:2022-04-19 08:06
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ";>
<html xmlns=";>
<head>
<style type='text/css'>
body{
width:140px;
height:200px;
margin:160px auto;
}
</style>
</head>
<body>
<div>
<div style="overflow:auto;height:209px;width:140px;position:relative;border-bottom:1px solid #333" id="tb">
<table border="1" id="tbl"$amp;>amp;$lt;tr$amp;>amp;$lt;td colspan=2 style="width:114px;">sdfsdfdf</td$amp;>amp;$lt;/tr$amp;>amp;$lt;tr$amp;>amp;$lt;td>sdfsdfs1</td$amp;>amp;$lt;td$amp;>amp;$lt;img src='images/close.gif' /$amp;>amp;$lt;/td$amp;>amp;$lt;/tr$amp;>amp;$lt;tr$amp;>amp;$lt;td>sdfsdfs2</td$amp;>amp;$lt;td$amp;>amp;$lt;img src='images/close.gif' /$amp;>amp;$lt;/td$amp;>amp;$lt;/tr$amp;>amp;$lt;tr$amp;>amp;$lt;td>sdfsdfs3</td$amp;>amp;$lt;td$amp;>amp;$lt;img src='images/close.gif' /$amp;>amp;$lt;/td$amp;>amp;$lt;/tr$amp;>amp;$lt;tr$amp;>amp;$lt;td>sdfsdfs4</td$amp;>amp;$lt;td$amp;>amp;$lt;img src='images/close.gif' /$amp;>amp;$lt;/td$amp;>amp;$lt;/tr$amp;>amp;$lt;tr$amp;>amp;$lt;td>sdfsdfs5</td$amp;>amp;$lt;td$amp;>amp;$lt;img src='images/close.gif' /$amp;>amp;$lt;/td$amp;>amp;$lt;/tr$amp;>amp;$lt;tr$amp;>amp;$lt;td>sdfsdfs6</td$amp;>amp;$lt;td$amp;>amp;$lt;img src='images/close.gif' /$amp;>amp;$lt;/td$amp;>amp;$lt;/tr$amp;>amp;$lt;tr$amp;>amp;$lt;td>sdfsdfs7</td$amp;>amp;$lt;td$amp;>amp;$lt;img src='images/close.gif' /$amp;>amp;$lt;/td$amp;>amp;$lt;/tr$amp;>amp;$lt;tr$amp;>amp;$lt;td>sdfsdfs8</td$amp;>amp;$lt;td$amp;>amp;$lt;img src='images/close.gif' /$amp;>amp;$lt;/td$amp;>amp;$lt;/tr$amp;>amp;$lt;tr$amp;>amp;$lt;td>sdfsdfs9</td$amp;>amp;$lt;td$amp;>amp;$lt;img src='images/close.gif' /$amp;>amp;$lt;/td$amp;>amp;$lt;/tr$amp;>amp;$lt;tr$amp;>amp;$lt;td>sdfsdf10</td$amp;>amp;$lt;td$amp;>amp;$lt;img src='images/close.gif' /$amp;>amp;$lt;/td$amp;>amp;$lt;/tr$amp;>amp;$lt;tr$amp;>amp;$lt;td>sdfsdf11</td$amp;>amp;$lt;td$amp;>amp;$lt;img src='images/close.gif' /$amp;>amp;$lt;/td$amp;>amp;$lt;/tr$amp;>amp;$lt;tr$amp;>amp;$lt;td>sdfsdf12</td$amp;>amp;$lt;td$amp;>amp;$lt;img src='images/close.gif' /$amp;>amp;$lt;/td$amp;>amp;$lt;/tr$amp;>amp;$lt;/table>
</div>
<table border="1" id="aaa" style="position:absolute;top:160px;background:#ffffff;"$amp;>amp;$lt;tr$amp;>amp;$lt;td colspan=2 style="width:114px">sdfsdfdf</td$amp;>amp;$lt;/tr$amp;>amp;$lt;/table>
</div>
</body>
</html>
<script type='text/javascript'>
onload = init;
function init(){
var imgs = document.getElementById("tb").getElementsByTagName("img");
for(var i=0;i<imgs.length;i++){
imgs[i].onclick = changeSp;
}
}
function changeSp(){
if(this.flg){
this.flg = false;
this.src = "images/close.gif";
}else{
this.flg = true;
this.src = "images/open.gif";
}
var imgs = document.getElementById("tb").getElementsByTagName("img");
for(var i=0;i<imgs.length;i++){
if(!imgs[i].flg){
document.getElementById("tbl").tBodies[0].insertBefore(this.parentNode.parentNode, imgs[i].parentNode.parentNode);
break;
}
imgs[i].onclick = changeSp;
}
updataSld();
}
function updataSld(){
var imgs = document.getElementById("tb").getElementsByTagName("img");
document.getElementById("aaa").tBodies[0].innerText document.getElementById("aaa").tBodies[0].innerText= "" :document.getElementById("aaa").tBodies[0].innerHTML ="";
var tr0 = document.getElementById("tbl").tBodies[0].rows[0].cloneNode(true);
tr0.style.background = "#ffffff";
document.getElementById("aaa").tBodies[0].appendChild(tr0);
for(var i=0;i<imgs.length;i++){
if(imgs[i].flg){
var a = imgs[i].parentNode.parentNode.cloneNode(true);
js表格功能:冻结行列,排序,列拖拽,怎么一起实现
1.如图,一个没有经过固定操作的电子表格,当随着表格被拖动或滚动,需要被固定的首行或首列的信息也跟着滚动消失了。 2.首先打开excel文档,假设我们需要让表格的前两行内容在表格滚动时固定在表格顶部,即第3行与第4行不变,如图所示。
excel中,如何让某行某列固定(比如表头),而其他行列可以自由翻页?_百度...
选中你要冻结的单元格——窗口——冻结窗口——即可。此时你可滚动鼠标转轮,在你选中的单元格的上方和左方就是冻结部分!
jq怎么把html中的table内的内容导出到excel?
用现成的组件:<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <script src="src/jquery.table2excel.js"></script> 点击button开始导出:("button").click(function(){ ("#table2excel").table2excel({ exclude: ".noExl",name: "Worksheet Name...
xlsx库实现纯前端导入导出Excel
至此,简单的前端导入Excel数据已经全部实现了。 顺带一提,如果想要在页面中展示sheet,可以使用XLSX.utils.sheet_to_html。前端导出Excel文件 导出一般分为两种: 数据导出Excel 页面表格导出Excel数据导出Excel 前端在写前端导入Excel数据方法,最后返回的其实是workbook中sheet的集合。那么导出Excel文件便是将sheet拼成一个w...
excel的一个单元格内有大量数据,如何进行拆分?
方法2:使用VBA宏代码具体步骤:Excel中按下Alt+F11左侧右击插入”模块“粘贴下列宏代码123456 F5运行即可,实现方法1同样的效果方法3:使用JS代码功能具体步骤:打开Chrome浏览器按下F12,进入开发者工具点击”Console“控制台输入下列JS代码,并回车'你的单元格A1中的数值'.replace(/\d/g,'$& ')...
如何让table 表头随着滚动条滚动? 达到覆盖效果。 JS 、JQ大神求帮忙...
建议用DIV代替表头,直接用table的话可能不行,楼下说的对就是用fixed,但是不是一上来就用fixed而是等到你的表格头部到浏览器顶端的时候才用fixed,去百度一下JS或则JQ的吸顶效果吧~会有你想要的~
excel 从表一中引用某列中含有tc的数据到表二中
不要在Z列)输入公式:=OFFSET(Sheet1!C$1,SMALL(IF(ISERR(FIND("TC",Sheet1!C$2:C$1000))+ISERR(FIND("JS",Sheet1!C$2:C$1000))=2,65535,ROW(Z$1:Z$999)),ROW(Z1)),)&""注意是数组公式,按组合键Ctrl+Shift+Enter三键结束输入。公式下拉足够长。效果如图,附件可下载参考 ...
js控制excel打印完美解决方案
Excel js 这个是清理excel的脚本 当结束excel进程的时候它还没有推出 清理一下 这个就没有vs好了 (这个是一个简单的示例 就是你给他一个表格名字就可以了 然后生成一个表格 就是这样:MakeExcel( TABLE true xls ) 其他参数可以不要 function MakeExcel(Obj ProceVisible SaveAsFilename SortType ...
js监听事件有什么用js监听事件有什么用处
https://github.com/anselmh/object-fit让浏览器支持object-fit这css规则 HTML5CrossBrowserPolyfills一堆Polyfills flexibility让旧的IE也支持Flexbox 选择器增强 Lining.js让浏览器实现类似::nth-line(),::nth-last-line()的效果 未归类 prefixfree用了它,写css时,就不需要加浏览器的前缀了 表单类 jquery-file...
有没有js脚本或jquery插件实现html表格导出导入excel文件,html表格导出...
目前好像没有完善的直接导出为excel文件的插件,有一个插件可以导出为csv,可以直接使用excel来打开。插件名字叫table2csv。