Home >
Article > Web Front-end > Use js to adjust table cell height and width, compatible with merged cells (compatible with IE6, 7, 8, FF) examples_javascript skills
Use js to adjust table cell height and width, compatible with merged cells (compatible with IE6, 7, 8, FF) examples_javascript skills
//Note: Get the object. Example: $("objectId") is equivalent to document.getElementById("objectId") if (typeof $ != "function") { var $ = function ( ids) { return document.getElementById(ids) }; } //Note: Get the coordinates, the last node of parentNode. Example: absPos(object).x function absPos(_node, parentNode) { var x = y = 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 method (DOM method) The meaning of false in the following statement is It is used in the bubbling phase. If it is true, it is used in the capturing phase (IE does not support capturing), so false is used here for the purpose of unification. */object.addEventListener(event, func, false); return true; } else if (object.attachEvent) { /* MSIE method (IE method) */object['e' event func] = func; object[event func] = function () { object['e' event func](window. event); }; object.attachEvent('on' event, object[event func]); return true; } /*If neither method is available, return false */return false; } //Comments: Determine whether onmouseover and onmouseout are triggered by child nodes within the object. Example: 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; //DIV covering the table var cellHide = [];//Supplementary rowspan, cellspan grid var moveMode = "";//Mouse movement mode var moveArgs = []; //Move mode parameters
addEvent(document,"mousemove",function(e){ e = e || window.event; if(moveMode == "cellWidth"){ //调整宽度
var temp = moveArgs[0]; var test = ""; for(var i=0;i var index = temp; for(var j=0;j if(i==cellHide[j][0] && temp>=cellHide[j][1]){index--;} } if(!table.rows[i].cells[index] || index < 0 || table.rows[i].cells[index].colSpan > 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"){ //调整高度 var index = moveArgs[0]; for(var i=0;i if(table.rows[index].cells[i].rowSpan > 1){continue;} 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 || event; if (!isMouseLeaveOrEnter(e, this)) { return; } moveMode = ""; moveArgs = []; });
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn