`
kblade
  • 浏览: 5696 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类

table 动态高度和固定第一行

阅读更多
固定第一行,使用javascript 操作层


<html>   
  <head>   
	  <meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312">   
	  <title>table 固定第一行</title>   
	 
	  <script>

	  
			
			Browser = (function(ua){
				var b = {
					msie: /msie/.test(ua) && !/opera/.test(ua),
					opera: /opera/.test(ua),
					safari: /webkit/.test(ua) && !/chrome/.test(ua),
					firefox: /firefox/.test(ua),
					chrome: /chrome/.test(ua)
				};
				var vMark = "";
				for (var i in b) {
					if (b[i]) { vMark = "safari" == i ? "version" : i; break; }
				}
				b.version = vMark && RegExp("(?:" + vMark + ")[\\/: ]([\\d.]+)").test(ua) ? RegExp.$1 : "0";
				
				b.ie = b.msie;
				b.ie6 = b.msie && parseInt(b.version, 10) == 6;
				b.ie7 = b.msie && parseInt(b.version, 10) == 7;
				b.ie8 = b.msie && parseInt(b.version, 10) == 8;
				
				return b;
			})(window.navigator.userAgent.toLowerCase());

			var obj = {
				
					change : function(o){
			
						var div = document.getElementById("div1");
						var idTr = document.getElementById("idTr");

						var pos = getElementPos(div);

						var height1 = document.body.clientHeight-pos[1]-20;

						var height2 = div.children[0].offsetHeight;


						if(height1 > height2){
							div.style.height = height2 + 20;

						}else{
							if(height1 > 300){
								
								div.style.height = height1;
							}
							else{
								div.style.height = 300;
							}
						}
						

					},

					changeStyle:function(){
						
						var idTr = document.getElementById("idTr");
						if(Browser.ie6 || Browser.ie7){	
							idTr.style.position = "relative";											
							idTr.style.top = idTr.offsetParent.scrollTop;			
						}else{							
							idTr.style.position = "fixed";
							idTr.style.top = idTr.parentNode.parentNode.parentNode.top;
						}
					}
			}

			 

			   var EventUtil = new Object;
                EventUtil.addEventHandler = function (oTarget, sEventType, fnHandler) {
                    if (oTarget.addEventListener) {
                        oTarget.addEventListener(sEventType, fnHandler, false);
                    } else if (oTarget.attachEvent) {
                        oTarget.attachEvent("on" + sEventType, fnHandler);
                    } else {
                        oTarget["on" + sEventType] = fnHandler;
                    }
                };

				var oo = function(){
					obj.changeStyle();
				}

				window.onload = function() {
                    var oDiv = document.getElementById("div1");   
                    EventUtil.addEventHandler(oDiv, "scroll", oo);
                }


				//得到某一元素的绝对位置,不管该元素嵌套在多复杂的位置里  
				function getElementPos(obj) {  
					var left = 0;  
					var top = 0;  
				  
					if(obj.x)  
					{  
						left= obj.x;  
						top = obj.y;  
					}else if(obj.offsetParent)  
					{     
						while(obj.offsetParent)  
						{         
							left += obj.offsetLeft;  
							top  += obj.offsetTop;  
							obj = obj.offsetParent;  
						}   
					}  
				  
					return [left,top];//封装在一个数组里  
				}  
	  </script>
  </head>   
    
    <body onresize="obj.change()">  
<br>  
    
  <br><br>  <br>  <br>  
  <br>  <div style="text-align:center;width:100%;border:1px blue solid;">
      <div  id="div1" style="margin-right: auto;margin-left: auto;border:1px red solid;height:300;overflow:auto;width:600; scrollbar-face-color:9999ff;">   
            <table   width="800"   border=3   cellspacing=0   style="margin-top:-2px;" height=1000>   
            <TR   class="fixedHeaderTr"   style="background:navy;color:white;width:800;height:30" id="idTr">   
				<TD   nowrap>Header   A</TD>   
				<TD   nowrap>Header   B</TD>   
				<TD   nowrap>Header   C</TD>   
            </TR>   
            <TR>   
            <TD>A</TD>   
            <TD>B</TD>   
            <TD   nowrap   >   
                sssss<br>   
               s</TD>   
            </TR>   
            <TR>   
            <TD>A</TD>   
            <TD>B</TD>   
            <TD>C</TD>   
            </TR>   
            <TR>   
            <TD>A</TD>   
            <TD>B</TD>   
            <TD>C</TD>   
            </TR>   
            <TR>   
            <TD>A</TD>   
            <TD>B</TD>   
            <TD>C</TD>   
            </TR>   
            <TR>   
            <TD>A</TD>   
            <TD>B</TD>   
            <TD>C</TD>   
            </TR>   
            <TR>   
            <TD>A</TD>   
            <TD>B</TD>   
            <TD>C</TD>   
            </TR>   
            <TR>   
            <TD>A</TD>   
            <TD>B</TD>   
            <TD>C</TD>   
            </TR>   
            <TR>   
            <TD>A</TD>   
            <TD>B</TD>   
            <TD>C</TD>   
            </TR>   
            <TR>   
            <TD>A</TD>   
            <TD>B</TD>   
            <TD>C</TD>   
            </TR>   
            <TR>   
            <TD>A</TD>   
            <TD>B</TD>   
            <TD>C</TD>   
            </TR>   
            <TR>   
            <TD>A</TD>   
            <TD>B</TD>   
            <TD>C</TD>   
            </TR>   
            <TR>   
            <TD>A</TD>   
            <TD>B</TD>   
            <TD>C</TD>   
            </TR>   
            <TR>   
            <TD>A</TD>   
            <TD>B</TD>   
            <TD>C</TD>   
            </TR>   
            <TR>   
            <TD>A</TD>   
            <TD>B</TD>   
            <TD>C</TD>   
            </TR>   
            <TR>   
            <TD>A</TD>   
            <TD>B</TD>   
            <TD>C</TD>   
            </TR>   
            </table>   
      </div>   </div>


	  <SCRIPT LANGUAGE="JavaScript">
	  <!--
		obj.change();
	  //-->
	  </SCRIPT>
    </body>   
  </html> 




分享到:
评论

相关推荐

    移动端table固定表头与固定第一列

    本教程将详细讲解如何在移动端实现"固定表头与固定第一列"的功能,以提升用户体验,使得用户在滚动时能够始终保持表头和第一列可见。 首先,我们需要理解HTML5中的`&lt;table&gt;`元素,它是用于创建表格的标准标签。在...

    Jquery Table 固定行和列

    例如,表头(thead)和第一列(th:first-child)通常会被设置为`position: fixed`,并可能需要调整宽度和高度以适应视口。 `固定行列.html`是HTML文件,其中包含了表格结构。这个文件可能会包含一个`&lt;table&gt;`元素,...

    HTML表格固定第一行第一列效果

    为了解决这个问题,我们可以实现一个类似于Excel的功能,即在滚动时固定表格的第一行和第一列,使得在浏览大量数据时,关键的列名和行标识始终可见。以下将详细介绍如何实现这个效果。 首先,我们需要创建一个基本...

    HTML页面table表格固定行和列

    同时,我们需要确保表头的高度与实际表格的第一行高度一致,以保持视觉一致性。例如: ```html .fixed-header { position: fixed; top: 0; width: 100%; } &lt;table&gt; &lt;!-- 表头内容 --&gt; &lt;/table&gt; &lt;table...

    Js实现表格头部第一行下拉固定

    为了解决这个问题,开发者通常会采用“表格头部第一行下拉固定”的技术,使得在滚动查看表格内容时,表头始终保持可见,方便用户对照查阅。本文将详细介绍如何使用JavaScript实现这一功能。 首先,理解这个需求的...

    html固定第一行第一列

    在构建固定第一行第一列的布局时,可以使用`&lt;table&gt;`标签创建表格,或者使用`&lt;div&gt;`标签结合CSS Grid或Flexbox创建自定义网格。 1. 表格布局: ```html &lt;table&gt; 固定列1 列2 ... 固定行1 数据1 ....

    Android可固定表头和第一列自定义表格

    Android可固定表头和第一列自定义表格,集成简单。 API使用说明: LockTableView mLockTableView=new LockTableView(this,mContentView,mTableDatas); mLockTableView.setLockFristColumn(true) //是否锁定第一列 ...

    固定行列的table特效

    本教程将详细介绍如何利用HTML、CSS以及JavaScript实现一个具有固定行列效果的表格特效,使用户在滚动时仍能看到关键的列名和行标识。 首先,我们需要创建一个基本的HTML结构,包含一个表格元素(`&lt;table&gt;`)。表格...

    js table固定表头,固定列,全浏览器兼容

    总结来说,"js table固定表头,固定列,全浏览器兼容"这个主题涵盖的技术点包括:JavaScript事件监听、DOM操作、CSS定位技术、浏览器兼容性处理,以及可能的第三方库或插件的使用。实现这样的功能需要深入理解前端技术...

    Table 表格 表头表尾浮动显示

    1. 单行固定:通常是指只将第一行表头固定,当用户向下滚动时,表头始终在顶部可见。这种实现相对简单,只需要处理一行表头的固定即可。 2. 多行固定:对于具有多级表头或者复杂结构的表格,可能需要将多行表头固定...

    css如何固定table第一行CSS面试知识点总结三.docx

    在CSS中,固定table第一行是一项常见的需求,特别是在创建数据表格时,为了保持表头的可见性,即使在滚动内容时。以下是一些关键的CSS面试知识点,它们涉及到表格、行高、边距、边框以及其他相关的样式特性。 首先...

    jsp表头相对固定的2种方法

    在网页设计中,数据展示通常会使用表格,而当表格数据过多时...1. **DataTables**:这是一个强大的jQuery插件,它提供了许多表格增强功能,包括表头固定。引入DataTables库并设置相应的参数,即可轻松实现: ```html ...

    bootstrap-table实现表头固定以及列固定的方法示例

    这样即使用户滚动页面查看表格内容时,固定的表头或列依然可见,方便用户快速识别数据所在的列和行。 首先,要使用bootstrap-table实现表头固定以及列固定的功能,需要引入对应的JavaScript和CSS文件。这包括jQuery...

    bootstrap-table头部错位已完美解决

    fixedNumber: 1 // 如果需要第一列固定,将数字1替换为需要固定的列数 }); ``` 6. **更新或修复插件**:有时,问题可能出在Bootstrap表格插件本身。确保使用的是最新版本,或者查找已知的bug和修复。 7. **清除...

    ABAP动态内表使用的例子

    在ABAP中,创建动态内表的第一步是定义其结构。通常情况下,我们会为内表的所有列定义字符型数据类型。这是因为字符型数据类型的通用性较强,可以存储各种形式的信息。 **代码示例:** ```abap TYPES: BEGIN OF ...

    表头、第一列固定的表格

    在网页设计中,固定表头和第一列是常见的需求,特别是在处理大数据量的表格时,为了保持用户在滚动查看数据时能始终看到列标题和行标识,这种布局方式显得尤为重要。"表头、第一列固定的表格"这个主题,通常涉及到...

    JavaScript Table行定位效果

    程序第一步就是克隆原table: this._oTable = $(table);//源table this._nTable = this._oTable.cloneNode(false);//新table this._nTable.id = "";//避免id冲突 要注意虽然ie的cloneNode参数是可选的(默认是...

    Android 表格控件-动态实现表格效果(内容、样式可扩展)

    创建一个简单的动态表格,首先在XML布局文件中添加TableLayout,然后在Activity中创建并添加TableRow,每行中添加TextView。例如: ```java TableLayout table = findViewById(R.id.table); for (int i = 0; i ;...

    h5 固定表头及列头demo

    在本示例中,第一行和第一列的表头将被设置为`position: fixed`,确保它们在页面上始终可见。 具体实现时,可能需要创建两个独立的表格部分,一个用于固定表头,另一个用于显示实际数据。固定表头的表格通常会被...

    js实现html table 行,列锁定的简单实例

    4. 使用jQuery的`clone(true)`方法,创建原始表格的深拷贝,分别赋值给`tableFixClone`(用于表头和第一列的锁定)和`tableHeadClone`(仅用于表头锁定)。这些克隆的表格将被插入到对应的div元素中。 5. 在实际...

Global site tag (gtag.js) - Google Analytics