搜尋
首頁web前端js教程用js實作table單元格高寬調整,相容合併單元格(相容IE6、7、8、FF)實例_javascript技巧

先上效果圖:

用js實作table單元格高寬調整,相容合併單元格(相容IE6、7、8、FF)實例_javascript技巧

CSS:

複製程式碼程式碼如下:

body{margin:0px; :0px;-moz-user-select:none;遊標:預設;}

.tabEditDiv{位置:絕對;寬度:15px;高度:15px;遊標:指標;}
.seltab{位置:絕對;寬度:15px;高度:15px;遊標:指標;背景:url(影像/seltab.gif) 不重複;}
.splitx{溢出:隱藏;位置:絕對;高度:3px;遊標:行調整大小;背景:紅色!重要;濾鏡:Alpha(不透明度=10); - moz-不透明度:0.1;不透明度:0.1; }
.spity{溢出:隱藏;位置:絕對;寬度:3px;遊標:col-resize;背景:紅色!重要;濾鏡:Alpha(不透明度= 10);-moz-不透明度:0.1;不透明度:0.1 ;}
#tabletitle{font-weight:bold;font-size:18px;height:30px;width :800px;margin:0 auto;text-align:center;font-family:宋體;line-height:30px ;}
#tabletitle 輸入{寬度:100%;邊框:0px;高度:28px;行高: 30px;文字對齊:中心;字體粗細:粗體;字體大小:18px;字體系列:宋體;}
.finelinetable{border-right:1pxsolid #000;border-top:1pxsolid #000;border-collapse: collapse;font-size:13px;width:800px;margin:0 auto;}
.finelinetable td{邊框左:1px實心#000;邊框底部:1px實心#000;):25px;}

HTML:


複製程式碼程式碼如下:


    
表格标题

    
        
            
        
        
            
            
            
            
            
            
        
        
            
            
            
            
            
            
        
        
            
            
            
            
            
        
        
            
        
        
            
            
            
            
            
        
        
            
            
            
            
        
        
            
            
            
             >


            
        
            
                
1
2 3 4 5 6 7
8 9 10 11 12 13
14 15 16 17 18
 
         
       
       
> > > > > td>
            
        
 
 

 



JS:




複製程式碼

程式碼如下:

//註解:取得物件.範例:$("objectId") 等同於document.getElementById("objectId")
 if (typeof $ != "function") { var $ = function ( ids) { return document。 = 0; var node = _node; do { if (parentNode && node == parentNode) { break; } x = node.offsetLeft; y = node.offsetTop; } while (node = node.offsetParent); node = _node; return { 'x': x, 'y': y }; }
 function addEvent(object, event, func) { if (object.addEventListener) { /* W3C方法(DOM方法)下面語句中的false意思是用於冒泡階段,若是true則是用於捕獲階段(IE不支援捕獲),所以這裡用false是一方面的原因是為了統一*/object.addEventListener(event, func, false); return true; } else if (object.attachEvent) { /* MSIE方法(IE方法) */object['e' event func] = func; object[event func] = function () { object['e' event func](window. event); }; object.attachEvent('on' event, object[event func]); return true; } /*如兩種方法都不具備則回傳false */return false; }
 //註解:判斷是否為物件內子節點觸發的onmouseover和onmouseout.範例:e = e || event;if (isMouseLeaveOrEnter(e, obj)) {}
 function isMouseLeaveOrEnter(e, handler) { if (e.type != 'mouseout' && e.type != 'mouseover') return false; var reltg = e.relatedTarget ? e.relatedTarget : e.type == 'mouseout' ? e.toElement : e.fromElement; while (reltg && reltg ! = handler) reltg = reltg.parentNode; return (reltg != handler); }

 var table = $("mainTable");
 var tabEditDiv; //覆蓋在table上的DIV
 var cellHide = [];//補充的rowspan,cellspan的格子
 var moveMode = "";//滑鼠移動模式
 var moveArgs = []; //移動模式參數

document.onselectstart = function(){return false;};
 addEvent(window,"resize",function(){loadTable();});

 $("tabletitle").ondblclick = function(){
     if(this.getElementsByTagName("input").length > 0){return;}
     this.innerHTML = "";
     var input = this.getElementsByTagName("input")[0];
   focus();
     input.onblur = function(){_this.innerHTML = this.value;}
     input.onkeydown = function (e) { var key = window.eventkey edow. .which; if (key == 13) this.blur(); };
 }

 function loadTable(){
     var tabPos = absPos(table);         tabEditDiv = document.createElement("div");
        EditDiv.style.cssText = "left:" (tabPos.x - 15) "px;top:" (tabPos.y - 15) "px;";
     tabEditDiv.className = "tabEditDiv";

   seltab){
         var seltab = document.createElement("div");
         seltab.style.cssText = "width:15pxtoppft :" (tabPos.y - 15) "px;";
         seltab.className = "seltab";
       table.getAttribute("selected") = = "1"){
                 table.removeAttribute("selected");
                 this.style.width = "15px";
             height = "15px";
             }else{
                 table.setAttribute("selected","1");
                     this.style.width = (table.clientWidth 15) "px" ;
                 this.style.height = (table.clientHeight 15) "px";
             document.body.appendChild(seltab);
     }
     loadTableEdit() ;
 } loadTable();

 function loadTableEdit(){ //載入可調整寬度及高度的div
     var tabPos = absPos(table);
; ;
     var cellcount = 0;
     var isadd = cellHide.length == 0;
     for(var i=0;i             var pos = absPos(table.rows[i]. "splitx_" (pos.y table.rows[i].cells[j].clientHeight))){ //載入高度調整的div
               split.id = "splitx_" (pos.y table.rows[i].cells[j].clientHeight);
                  split.style.cssText = "寬度:" table.clientWidth "px;left:15px;top:" (pos.y table.rows[i].cells[j].clientHeight - 1 15) "px";
         🎜>                     var index = this.getAttribute("index");
  = 0; } var divs = tabEditDiv.getElementsByTagName("div"); var left = parseInt(this.id.split("_")[1]); for(var k=0;k                         moveArgs[moveArgs.length] = index;
                 }
                 tabEditDiv.appendChild(split);
          
             if(j > 0){ //已調整寬度的div
                         var split = document.createElement("div") ;
                     split.id = "splity_" pos.x;
    >                     split.style.cssText = "高度:" table.clientHeight 「px;上:15px;左: " (pos.x - 2 15) "px";
                     split.onmousedown =     var index = this.getAttribute("index");
                      索引= 0; var divs = tabEditDiv.getElementsByTagName("div"); var left = parseInt(this.id.split("_")[1]); for(var k=0;k                                  moveArgs[moveArgs.length] = index;
                   tabEditDiv .appendChild(split);
                }
                           loadHide();
            function(){
                //alert("x");
         🎜> }

 函數loadHide(){
     儲存格隱藏= [];
     var tempHide = [];
     for(var i=0;i    . ) ].cells.length;j ){
             for(var k=1;k                 tempHide[tempHide.length] = [i k,j];     }
     for(var i=0;i         for(var j=0;j        [ j].colSpan;k ){
                 var yc = 0;
                          if(tempHide[l][0]== i&&temp隱藏[l][1] }
for(var l=0;l if(table.rows[i].cells[l].colSpan > 1){yc =table.rows [ i].cells[l].colSpan-1;}
}
cellHide[cellHide.length] = [i,jk yc];
}
}
}
}

addEvent(document,"mousemove",function(e){
e = e || window.event;
if(moveMode == "cellWidth"){ //调整宽度

var temp = moveArgs[0];
var test = "";
for(var i=0;i varindex = temp;
for(var j=0;j if(i==cellHide[j][0] && temp>=cellHide[j][1]){index-- ;}
}
if(!table.rows[i].cells[index] || インデックス 1){Continue ;}
if(e.clientX > absPos(table.rows[i].cells[index]).x)
table.rows[i].cells[index].style.width = e。 clientX - absPos(table.rows[i].cells[index]).x "px";
}
loadTableEdit();
}else if(moveMode == "cellHeight"){ //调整高
varindex = moveArgs[0];
for(var i=0;i if(table.rows[index] .cells[i].rowSpan > 1){続行;}
if(e.clientY > absPos(table.rows[index].cells[i]).y)
table.rows[index].cells[i].style。 height = e.clientY - absPos(table.rows[index].cells[i]).y "px";
}
loadTableEdit();
}
});
addEvent(document,"mouseup",function(e){
moveMode = ""; moveArgs = [];
});
addEvent(document,"mouseout",function(e){
e = e || イベント;
if (!isMouseLeaveOrEnter(e, this)) { return; }
moveArgs = [];
});
陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
Excel 发现一个或多个公式引用存在问题:如何修复Excel 发现一个或多个公式引用存在问题:如何修复Apr 17, 2023 pm 06:58 PM

使用错误检查工具使用Excel电子表格查找错误的最快方法之一是使用错误检查工具。如果该工具发现任何错误,您可以更正它们并再次尝试保存文件。但是,该工具可能无法找到所有类型的错误。如果错误检查工具没有发现任何错误或修复它们不能解决问题,那么您需要尝试以下其他修复之一。要在Excel中使用错误检查工具:选择公式 选项卡。单击错误检查 工具。在发现错误时,有关错误原因的信息将出现在工具中。如果不需要,请修复错误或删除导致问题的公式。在错误检查工具中,单击下一步以查看下一个错误并重复该过程。当没

如何在 Google Sheets 中设置打印区域?如何在 Google Sheets 中设置打印区域?May 08, 2023 pm 01:28 PM

如何在打印预览中设置GoogleSheets打印区域Google表格允许您使用三个不同的打印区域打印电子表格。您可以选择打印整个电子表格,包括您创建的每个单独的工作表。或者,您可以选择打印单个工作表。最后,您只能打印您选择的部分单元格。这是您可以创建的最小打印区域,因为理论上您可以选择单个单元格进行打印。最简单的设置方法是使用内置的Google表格打印预览菜单。您可以在PC、Mac或Chromebook上的网络浏览器中使用Google表格查看此内容。要设置Google

不同单元格格式太多复制不了怎么办不同单元格格式太多复制不了怎么办Mar 02, 2023 pm 02:46 PM

不同单元格格式太多复制不了的解决办法:1、打开EXCEL文档,然后在几个单元格中输入不同格式的内容;2、在Excel页面的左上角找到“格式刷”按钮,然后单击“格式刷”选项;3、点击鼠标左键,将格式统一设置成一致的即可。

如何从 Excel 中的数字值和文本值中删除逗号如何从 Excel 中的数字值和文本值中删除逗号Apr 17, 2023 pm 09:01 PM

在数值上,在文本字符串上,在错误的地方使用逗号确实会变得烦人,即使对于最大的Excel极客来说也是如此。您甚至可能知道如何摆脱逗号,但您知道的方法可能对您来说很耗时。好吧,无论您的问题是什么,如果它与您的Excel工作表中的错误位置的逗号有关,我们可以告诉您一件事,您所有的问题今天都会得到解决,就在这里!深入研究这篇文章,了解如何通过尽可能简单的步骤轻松去除数字和文本值中的逗号。希望你喜欢阅读。哦,别忘了告诉我们哪种方法最吸引你的眼球!第1节:如何从数值中删除逗号当数值包含逗号时,可能有两种情

在 Excel 中如何查找并删除合并单元格在 Excel 中如何查找并删除合并单元格Apr 20, 2023 pm 11:52 PM

如何在Windows上的Excel中查找合并的单元格在从数据中删除合并的单元格之前,您需要全部找到它们。使用Excel的查找和替换工具很容易做到这一点。在Excel中查找合并的单元格:突出显示要在其中查找合并单元格的单元格。要选择所有单元格,请单击电子表格左上角的空白区域或按Ctrl+A。单击主页选项卡。单击查找和选择图标。选择查找。单击选项按钮。在FindWhat设置的末尾,单击Format。在对齐选项卡下,单击合并单元格。它应该包含一个复选标记而不是一行。单击确定以确认格式

如何计算 Google 表格上的日期之间的差异如何计算 Google 表格上的日期之间的差异Apr 19, 2023 pm 08:07 PM

如果您的任务是处理包含大量日期的电子表格,那么计算多个日期之间的差异可能会非常令人沮丧。虽然最简单的选择是依靠在线日期计算器,但它可能不是最方便的,因为您可能必须将日期一一输入到在线工具中,然后手动将结果复制到电子表格中。 对于大量日期,您需要一个更方便地完成工作的工具。幸运的是,谷歌表格允许用户在本地计算电子表格中两个日期之间的差异。在这篇文章中,我们将使用一些内置函数帮助您计算Google表格上两个日期之间的天数。 如何计算Google表格上的日期之间的差异如果您希望Google

如何在 Windows 11 上创建自定义电源计划如何在 Windows 11 上创建自定义电源计划Apr 28, 2023 am 11:34 AM

如何在Windows11上创建自定义电源计划自定义电源计划允许您确定Windows如何对不同情况作出反应。例如,如果您希望显示器在一段时间后关闭,但又不想让它进入睡眠状态,您可以创建一个自定义计划来执行此操作。在Windows11上创建自定义电源计划:打开开始菜单并键入控制面板。从搜索结果中选择控制面板。在控制面板中,将查看方式选项更改为大图标。接下来,选择电源选项。单击电源选项菜单中的创建电源计划选项。从提供的选项中选择您要使用的基本电源计划。在底部的计划名称字段中为其指定一个描述性名

如何在 Excel 中创建随机数生成器如何在 Excel 中创建随机数生成器Apr 14, 2023 am 09:46 AM

如何使用 RANDBETWEEN 在 Excel 中生成随机数如果要生成特定范围内的随机数,RANDBETWEEN 函数是一种快速简便的方法。这允许您在您选择的任何两个值之间生成随机整数。使用 RANDBETWEEN 在 Excel 中生成随机数:单击您希望出现第一个随机数的单元格。键入=RANDBETWEEN(1,500)将“1”替换为您要生成的最低随机数,将“500”替换为

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
2 週前By尊渡假赌尊渡假赌尊渡假赌
倉庫:如何復興隊友
1 個月前By尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒險:如何獲得巨型種子
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3 英文版

SublimeText3 英文版

推薦:為Win版本,支援程式碼提示!

SecLists

SecLists

SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用