js를 사용하여 표 셀 높이 및 너비 조정, 병합된 셀과 호환(IE6, 7, 8, FF와 호환)
先上效果图:
CSS:
body{margin:0px;padding :0px;-moz-user-select:none;cursor:default;}
.tabEditDiv{위치:절대;너비:15px;높이:15px;커서:포인터;}
.seltab{위치:절대;폭:15px;높이:15px;커서:포인터;배경:url(이미지 /seltab.gif) 반복 없음;}
.splitx{overflow:hidden;위치:absolute;height:3px;cursor:row-resize;배경:red !important;filter:Alpha(opacity=10);- moz-불투명도:0.1;불투명도: 0.1; }
.splity{overflow:hidden;position:absolute;width:3px;cursor:col-resize; background:red !important;filter:Alpha(opacity=10);-moz-opacity:0.1;opacity: 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 입력{width:100%;border:0px;height:28px;line-height:30px;text-align:center;font-weight:bold;font-size:18px;font-family:宋体;}
.finelinetable{border-right:1px solid #000;border-top:1px solid #000;border-collapse:collapse;font-size:13px;width:800px;margin:0 auto;}
.finelinetable td{border-left:1px solid #000;border-bottom:1px solid #000;height:25px;}
HTML:
1 | |||||||
2 | 3 | 4 | 5 | 6 | 7 | ||
8 | 9 | 10 | 11 | 12 | 13 | ||
14 | 15 | 16 | 17 | 18 | |||
| |||||||
| |||||||
| |||||||
| |||||||
|
JS:
//참고: 객체를 가져옵니다. 예: $("objectId")는 document.getElementById("objectId")
if (typeof $ != "function") { var $ = function ( ids) { return document.getElementById(ids) }; }
//참고: parentNode의 마지막 노드인 좌표를 가져옵니다. 예: 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.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] = object[event func] = function () { object['e' event func](window.event) }; object.attachEvent('on' event, object[event func]) } /*두 가지 메소드를 모두 사용할 수 없으면 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.관련Target ? e.type == 'mouseout' ? e.toElement : e.fromElement; while (reltg && reltg ! = 핸들러) reltg = reltg.parentNode; return (reltg != 핸들러) }
var table = $("mainTable");
var tabEditDiv; //테이블을 덮는 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 = "<입력 유형 ='text' value='" (this.innerHTML == "테이블 제목" ? "" : this.innerHTML) "' />";
var input = this.getElementsByTagName("input")[0] ;
var _this = this;
input.focus();
input.onblur = function(){_this.innerHTML = this.value;}
input.onkeydown = function(e) { var key = window.event.keyCode : e.which; if (key == 13) this.blur() };
}
function loadTable() var tabPos = absPos(table);
if(!tabEditDiv){
tabEditDiv = document.createElement("div");
document.body.appendChild(tabEditDiv); tabPos.x - 15) " px;top:" (tabPos.y - 15) "px;";
tabEditDiv.className = "tabEditDiv";
//모든 테이블 버튼 선택
if(!seltab){
var seltab = document.createElement("div");
seltab.style.cssText = "width:15px;height:15px;left:" (tabPos.x - 15) " px;top:" (tabPos .y - 15) "px;";
seltab.className = "seltab";
seltab.onclick = function(){
if(table.getAttribute("selected ") == "1" ){
table.removeAttribute("selected");
table.style.Background = "";
this.style.width = "15px";
이 .style.height = "15px ";
else{
table.setAttribute("selected","1");
table.style.Background = "#B6CAEB";
this.style.width = (table.clientWidth 15) "px" >
loadTableEdit() ;
} loadTable();
function loadTableEdit(){ //加载可调整宽島及高島的div
var tabPos = absPos(table);
tabEditDiv.innerHTML = "" ;
var cellcount = 0;
var isadd = cellHide.length == 0;
for(var i=0;i
if(!$( "splitx_" (pos.y table.rows[i].cells[j].clientHeight))){ //加载可调整고도적div
var Split = document.createElement("div");
Split.id = "splitx_" (pos.y table.rows[i].cells[j].clientHeight);
Split.className = "splitx";
Split.style.cssText = "너비:" table.clientWidth "px;left:15px;top:" (pos.y table.rows[i].cells[j].clientHeight - 1 15) "px";
분할.onmousedown = function(){
var index = this.getAttribute("index");
if(index == null){ index = 0; var divs = tabEditDiv.getElementsByTagName("div"); var left = parsInt(this.id.split("_")[1]); for(var k=0;k
moveArgs[moveArgs.length] = index;
}
tabEditDiv.appendChild(split);
}
if(j > 0){ //加载可调整宽島的div
if(!$("split_" pos.x)){
var 분할 = 문서. createElement("div") ;
분할.id = "sply_" pos.x;
분할.className = "sply";
분할.style.cssText = "높이:" 높이 "px;상단:15px;왼쪽 :" (pos.x - 2 15) "px";
Split.onmousedown = function(){
var index = this.getAttribute("index");
if(색인 == null) { 인덱스 = 0; var divs = tabEditDiv.getElementsByTagName("div"); var left = parsInt(this.id.split("_")[1]); for(var k=0;k
moveArgs[moveArgs.length] = index;
}
> loadHide();
}
table.rows[i].cells[j]. onmousedown = function(){
//alert("x");
}
}
}
}
함수 loadHide(){
cellHide = [];
var tempHide = [];
for(var i=0;i
tempHide[tempHide.length] = [i k,j];
}
}
}
for(var i=0;i
for(var l=0;l
cellHide[cellHide.length] = [i,j k yc];
}
}
}
}
addEvent(document,"mousemove",function(e){
e = e || window.event;
if(moveMode == "cellWidth"){ //调整宽島
var temp = moveArgs[0];
var test = "";
for(var i=0;i
for(var j=0;j
}
if(!table.rows[i].cells[index] || index < 0 || table.rows[i].cells[index].colSpan > 1){계속 ;}
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(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 = [];
});

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제









두 배열을 입력으로 사용하여 두 배열을 병합하거나 연결하고 결과를 세 번째 배열에 저장해 보세요. 두 배열을 병합하는 논리는 다음과 같습니다. J=0,k=0for(i=0;i<o;i++){//mergingtwoarrays if(a[j]<=b[k]){ c[i] =a[j]; }else{ &nbs

Excel 통합 문서에서 선행 0을 자동으로 제거하는 것이 불편합니까? 셀에 숫자를 입력하면 Excel에서 숫자 앞의 0을 제거하는 경우가 많습니다. 기본적으로 명시적인 서식이 없는 셀 항목은 숫자 값으로 처리됩니다. 선행 0은 일반적으로 숫자 형식과 관련이 없는 것으로 간주되므로 생략됩니다. 또한 앞에 0이 있으면 특정 수치 연산에서 문제가 발생할 수 있습니다. 따라서 0은 자동으로 제거됩니다. 이 문서에서는 계좌 번호, 우편 번호, 전화 번호 등과 같이 입력된 숫자 데이터가 올바른 형식인지 확인하기 위해 Excel에서 앞에 오는 0을 유지하는 방법을 설명합니다. Excel에서 숫자 앞에 0이 있도록 허용하는 방법은 무엇입니까? Excel 통합 문서에서 숫자의 앞에 오는 0을 유지할 수 있으며 선택할 수 있는 방법은 여러 가지가 있습니다. 다음과 같이 셀을 설정할 수 있습니다.

Java 개발에서는 데이터를 처리하기 위해 여러 입력 스트림을 결합해야 하는 경우가 많습니다. SequenceInputStream 함수는 입력 스트림을 병합하기 위해 Java에서 제공되는 함수 중 하나입니다. 여러 입력 스트림을 더 큰 입력 스트림으로 병합하여 데이터 처리를 용이하게 할 수 있습니다. 그렇다면 Java에서 SequenceInputStream 함수를 사용하여 입력 스트림을 병합하는 방법은 무엇입니까? 다음으로, 이 글에서는 구체적인 구현 방법과 주의사항을 세부 단계를 통해 소개하겠습니다. 나

HTML, CSS 및 jQuery를 사용하여 이미지 병합 표시를 구현하는 방법에 대한 고급 기능 개요: 웹 디자인에서 이미지 표시는 중요한 링크이며, 이미지 병합 표시는 페이지 로딩 속도와 사용자 경험을 향상시키는 일반적인 기술 중 하나입니다. 이 기사에서는 HTML, CSS 및 jQuery를 사용하여 이미지 병합 및 표시의 고급 기능을 구현하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. 1. HTML 레이아웃: 먼저 병합된 이미지를 표시하기 위해 HTML로 컨테이너를 만들어야 합니다. 당신은 디를 사용할 수 있습니다

win11에서는 화면 밝기가 너무 어두우면 사진이 선명하게 보이지 않고, 너무 밝으면 눈이 부시게 됩니다. 그렇다면 win11에서는 화면 밝기를 어떻게 조정하나요? 디스플레이 설정에서 조정할 수 있어 매우 편리합니다. win11에서 화면 밝기를 조정하는 방법: 1. 먼저 아래의 "시작 메뉴"를 엽니다. 2. 그런 다음 위의 "설정"을 클릭합니다. 3. 연 후 오른쪽에 있는 "디스플레이" 설정을 입력합니다. 4. 연 후 밝기 슬라이더를 밀어 화면 밝기를 조정합니다.

빠르게 시작하기: Java의 JSON 배열 병합 및 분할 기술 현대 소프트웨어 개발에서는 데이터 형식과 전송이 점점 더 중요해지고 있습니다. 그중 JSON(JavaScriptObjectNotation)은 일반적으로 사용되는 데이터 형식으로 특히 프런트엔드 및 백엔드 상호 작용과 데이터 저장에 적합합니다. Java 개발에서는 JSON 객체와 JSON 배열을 처리해야 하는 경우가 많습니다. 이 문서에서는 Java에서 JSON 배열을 병합하고 분할하는 방법과 이러한 작업을 구현하기 위한 팁 및 예제를 설명합니다.

게이머에게 마우스 dpi는 매우 중요하며 조작감에 영향을 미칩니다. 그렇다면 win11에서 마우스 dpi를 조정하는 방법은 실제로 사용하는 마우스 모델에 따라 조정 방법이 다를 수 있습니다. win11에서 마우스 dpi를 조정하는 방법 방법 1: (일반) 1. 먼저 "설정" 애플리케이션을 열고 왼쪽에서 "블루투스 및 기타 장치"를 클릭합니다. 2. 그런 다음 오른쪽의 "마우스" 설정 옵션을 클릭하여 들어갑니다. 3. 마지막으로 이 페이지를 클릭하여 마우스 속도 dpi를 수정합니다. 방법 2: (전문 장비) 1. 전문 마우스에는 일반적으로 dpi 조정 버튼이 함께 제공됩니다. 2. 그렇지 않은 경우 전문 드라이버 소프트웨어를 다운로드하여 dpi를 조정하십시오.

CSV(Comma Separated Values) 파일은 간단한 형식으로 데이터를 저장하고 교환하는 데 널리 사용됩니다. 많은 데이터 처리 작업에서는 특정 열을 기반으로 두 개 이상의 CSV 파일을 병합해야 합니다. 다행스럽게도 이는 Python의 Pandas 라이브러리를 사용하여 쉽게 달성할 수 있습니다. 이 기사에서는 Python에서 Pandas를 사용하여 특정 열을 기준으로 두 개의 CSV 파일을 병합하는 방법을 알아봅니다. Pandas 라이브러리란 무엇인가요? Pandas는 Python의 정보 제어 및 검사를 위한 오픈 소스 라이브러리입니다. 이는 구조화된 데이터(예: 표 형식, 시계열, 다차원 데이터) 및 고성능 데이터 구조 작업을 위한 도구를 제공합니다. Pandas는 금융, 데이터 과학, 기계 학습 및 데이터 조작이 필요한 기타 분야에서 널리 사용됩니다.
