웹 프론트엔드 JS 튜토리얼 JavaScript를 사용하여 테이블 열 너비의 드래그 앤 드롭 조정 기능을 구현하는 방법은 무엇입니까?

JavaScript를 사용하여 테이블 열 너비의 드래그 앤 드롭 조정 기능을 구현하는 방법은 무엇입니까?

Oct 21, 2023 am 08:14 AM
javascript 시트 열 너비 조정

如何使用 JavaScript 实现表格列宽拖拽调整功能?

JavaScript를 사용하여 테이블 열 너비의 드래그 앤 드롭 조정을 구현하는 방법은 무엇입니까?

웹 기술이 발전하면서 웹페이지에 표 형태로 표시되는 데이터가 점점 더 많아지고 있습니다. 그러나 때로는 테이블의 열 너비가 우리의 요구 사항을 충족하지 못해 내용이 넘치거나 너비가 부족할 수 있습니다. 이 문제를 해결하기 위해 JavaScript를 사용하여 테이블의 열 너비에 대한 드래그 앤 드롭 조정 기능을 구현하여 사용자가 필요에 따라 열 너비를 자유롭게 조정할 수 있습니다.

테이블 열 너비의 드래그 앤 드롭 조정 기능을 구현하려면 다음 세 가지 주요 단계가 필요합니다.

  1. 마우스 이벤트 모니터링: 사용자의 작업 동작을 캡처하려면 테이블에 마우스 이벤트 모니터링을 추가해야 합니다.
  2. 열 너비의 동적 조정: 사용자의 드래그 작업에 따라 테이블 열의 너비를 동적으로 조정합니다.
  3. 테이블 상태 기록: 페이지를 새로 고치거나 새로고침한 후에도 조정 결과가 유지될 수 있도록 사용자가 조정한 열 너비 상태를 기록합니다.

다음에서는 위의 세 단계의 구현 방법을 자세히 소개하고 해당 코드 예제를 제공합니다.

  1. 마우스 이벤트 수신

먼저 테이블을 수신하는 mousedown 이벤트를 추가하세요. 사용자가 테이블 열의 가장자리를 클릭하면 드래그를 시작하여 열 너비를 조정할 수 있습니다. mousedown 이벤트 핸들러에서 마우스 클릭 위치를 기록해야 합니다. mousedown 事件监听。当用户点击表格列边缘时,可以开始拖拽调整列宽。在 mousedown 事件处理函数中,需要记录鼠标点击的位置。

function tableMouseDown(event) {
  // 记录鼠标点击的位置
  const startX = event.clientX;
  // ...
}

接着,为 document 对象添加 mousemove 事件监听。在 mousemove 事件处理函数中,需要计算鼠标移动的距离,并动态改变表格列的宽度。

function documentMouseMove(event) {
  // 计算鼠标移动的距离
  const distanceX = event.clientX - startX;
  // 动态改变表格列的宽度
  // ...
}

最后,为 document 对象添加 mouseup 事件监听。当用户释放鼠标时,停止调整列宽。

function documentMouseUp() {
  // 停止调整列宽
  // ...
}
  1. 动态调整列宽

mousemove 事件处理函数中,根据用户的拖拽操作,动态调整表格列的宽度。首先,需要确定当前拖拽的是哪一列,可以通过表格头部的 th 元素来确定。然后,根据计算得到的鼠标移动距离,动态改变表格列的宽度。

function documentMouseMove(event) {
  // 计算鼠标移动的距离
  const distanceX = event.clientX - startX;
  
  // 动态改变表格列的宽度
  const th = document.elementFromPoint(startX, event.clientY);
  const columnIndex = th.cellIndex;
  const table = th.parentNode.parentNode.parentNode;
  const cells = table.querySelectorAll(`tr th:nth-child(${columnIndex + 1}), tr td:nth-child(${columnIndex + 1})`);

  const newWidth = parseFloat(getComputedStyle(cells[0]).width) + distanceX;
  for (const cell of cells) {
    cell.style.width = `${newWidth}px`;
  }
}
  1. 记录表格状态

为了在页面刷新或者重新加载后保持用户调整的列宽,我们需要将表格的列宽状态记录下来。可以使用 localStorage 或者 cookie 来实现数据的持久化保存。

function documentMouseUp() {
  // 停止调整列宽
  // ...

  // 记录表格的列宽状态
  const columnWidths = {};
  const table = document.querySelector('table');
  const columns = table.querySelectorAll('th');
  for (const column of columns) {
    columnWidths[column.cellIndex] = parseFloat(getComputedStyle(column).width);
  }
  
  localStorage.setItem('columnWidths', JSON.stringify(columnWidths));
}

在页面加载时,可以从 localStorage

window.addEventListener('load', function() {
  const columnWidths = JSON.parse(localStorage.getItem('columnWidths'));
  if (columnWidths) {
    const table = document.querySelector('table');
    const columns = table.querySelectorAll('th');
    for (const [index, width] of Object.entries(columnWidths)) {
      columns[index].style.width = `${width}px`;
    }
  }
});
다음으로 document 개체에 대한 mousemove 이벤트 리스너를 추가하세요. mousemove 이벤트 핸들러에서는 마우스가 이동한 거리를 계산하고 테이블 열의 너비를 동적으로 변경해야 합니다.

rrreee

마지막으로 document 개체에 대한 mouseup 이벤트 리스너를 추가하세요. 사용자가 마우스를 놓으면 열 너비 크기 조정을 중지합니다. 🎜rrreee
    🎜열 너비의 동적 조정🎜🎜🎜mousemove 이벤트 처리 기능에서 사용자의 드래그 동작에 따라 테이블 열의 너비를 동적으로 조정합니다. 먼저, 현재 드래그되고 있는 열을 확인해야 하며, 이는 테이블 헤드에 있는 번째 요소를 통해 확인할 수 있습니다. 그런 다음 계산된 마우스 이동 거리에 따라 테이블 열의 너비를 동적으로 변경합니다. 🎜rrreee
      🎜테이블 상태 기록🎜🎜🎜페이지를 새로 고치거나 새로 고친 후에도 사용자가 조정한 열 너비를 유지하려면 테이블의 열 너비 상태를 기록해야 합니다. localStorage 또는 cookie를 사용하여 지속적인 데이터 저장을 달성할 수 있습니다. 🎜rrreee🎜페이지 로드 시 저장된 열 너비 상태를 localStorage에서 읽어 테이블에 적용할 수 있습니다. 🎜rrreee🎜위의 세 단계를 통해 테이블 ​​열 너비의 드래그 앤 드롭 조정 기능을 구현할 수 있습니다. 사용자는 테이블의 열 너비를 자유롭게 조정하고 실제 필요에 따라 테이블의 표시 효과를 최적화할 수 있습니다. 이 기사가 도움이 되기를 바랍니다! 🎜

위 내용은 JavaScript를 사용하여 테이블 열 너비의 드래그 앤 드롭 조정 기능을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

PPT 표에 삽입된 그림의 형식을 조정하는 단계 PPT 표에 삽입된 그림의 형식을 조정하는 단계 Mar 26, 2024 pm 04:16 PM

1. 예시처럼 새 PPT 파일을 만들고 이름을 [PPT Tips]로 지정합니다. 2. [PPT 팁]을 더블클릭하여 PPT 파일을 엽니다. 3. 예를 들어 행 2개와 열 2개로 구성된 표를 삽입합니다. 4. 테이블 테두리를 더블클릭하면 상단 툴바에 [디자인] 옵션이 나타납니다. 5. [음영] 옵션을 클릭한 후 [그림]을 클릭하세요. 6. [그림]을 클릭하면 그림을 배경으로 채우기 옵션 대화 상자가 나타납니다. 7. 디렉토리에서 삽입하려는 트레이를 찾은 후 확인을 클릭하여 그림을 삽입하세요. 8. 테이블 상자를 마우스 오른쪽 버튼으로 클릭하여 설정 대화 상자를 불러옵니다. 9. [셀 서식]을 클릭하고 [이미지를 음영으로 배열]을 선택하세요. 10. [중앙], [미러] 및 기타 필요한 기능을 설정한 후 확인을 클릭하세요. 참고: 기본값은 테이블에 그림을 채우는 것입니다.

조건에 따라 자동으로 색상이 변경되도록 WPS 값을 설정하는 방법_조건에 따라 자동으로 색상이 변경되도록 WPS 테이블 값을 설정하는 단계 조건에 따라 자동으로 색상이 변경되도록 WPS 값을 설정하는 방법_조건에 따라 자동으로 색상이 변경되도록 WPS 테이블 값을 설정하는 단계 Mar 27, 2024 pm 07:30 PM

1. 워크시트를 열고 [시작]-[조건부 서식] 버튼을 찾습니다. 2. 열 선택을 클릭하고 조건부 서식을 추가할 열을 선택합니다. 3. [조건부 서식] 버튼을 클릭하면 옵션 메뉴가 나타납니다. 4. [조건부규칙 강조]-[사이]를 선택하세요. 5. 20, 24, 진한 녹색 텍스트와 어두운 채우기 색상 규칙을 입력합니다. 6. 확인 후, 선택한 열의 데이터는 설정에 따라 해당 숫자, 텍스트 및 셀 상자로 색상이 지정됩니다. 7. 충돌하지 않는 조건부 규칙은 반복적으로 추가할 수 있지만, 충돌하는 규칙의 경우 WPS는 이전에 설정된 조건부 규칙을 마지막에 추가된 규칙으로 대체합니다. 8. [사이] 규칙 20-24 및 [보다 작음] 20 뒤에 셀 열을 반복적으로 추가합니다. 9. 규칙을 변경해야 하는 경우 규칙을 삭제한 다음 규칙을 재설정하면 됩니다.

판매 예측 테이블을 만드는 방법 판매 예측 테이블을 만드는 방법 Mar 20, 2024 pm 03:06 PM

능숙하게 양식을 작성할 수 있다는 것은 회계, 인사, 재무에 필요한 기술일 뿐만 아니라 많은 영업사원에게도 매우 중요합니다. 왜냐하면 매출과 관련된 데이터는 매우 크고 복잡하며, 문제를 설명하기 위해 단순히 문서에 기록할 수는 없기 때문입니다. 더 많은 영업사원들이 엑셀을 능숙하게 활용하여 테이블을 만들 수 있도록 편집자가 판매예측에 관한 테이블 만들기 이슈를 소개합니다. 1. [매출 예측 및 목표 설정], xlsm을 열어 각 테이블에 저장된 데이터를 분석합니다. 2. 새로운 [빈 워크시트]를 생성하고 [셀]을 선택한 후 [라벨 정보]를 입력하세요. 아래로 [드래그]하여 달을 [채우세요]. [기타] 데이터를 입력한 후 [

MySQL과 PL/SQL의 유사점과 차이점 비교 MySQL과 PL/SQL의 유사점과 차이점 비교 Mar 16, 2024 am 11:15 AM

MySQL과 PL/SQL은 각각 관계형 데이터베이스와 절차적 언어의 특성을 나타내는 서로 다른 두 가지 데이터베이스 관리 시스템입니다. 이 기사에서는 구체적인 코드 예제를 통해 MySQL과 PL/SQL 간의 유사점과 차이점을 비교합니다. MySQL은 SQL(구조적 쿼리 언어)을 사용하여 데이터베이스를 관리하고 운영하는 인기 있는 관계형 데이터베이스 관리 시스템입니다. PL/SQL은 Oracle 데이터베이스 고유의 절차적 언어로 저장 프로시저, 트리거, 함수 등의 데이터베이스 개체를 작성하는 데 사용됩니다. 같은

Word 표에 자동 번호 매기기 또는 일련 번호를 삽입하는 방법 Word 표에 자동 번호 매기기 또는 일련 번호를 삽입하는 방법 Mar 20, 2024 am 09:30 AM

우리가 표를 만들 때 가장 먼저 생각하는 것은 엑셀 소프트웨어를 사용하여 표를 만드는 것인데, 실제로는 워드 소프트웨어로 표를 만들 때 매우 편리하다는 사실을 알고 계셨나요? 워드 소프트웨어로 표를 만들 때 일련번호를 입력해야 할 때가 있습니다. 또는 숫자를 일일이 입력하면 매우 번거롭습니다. 사실 워드 소프트웨어에는 숫자나 일련번호를 자동으로 삽입하는 기능이 있으므로, 자동번호 삽입 방법을 에디터와 함께 배워보겠습니다. 또는 일련 번호를 Word 테이블로 변환합니다. 1. 먼저 Word 문서를 만들고 표를 삽입합니다. 2. 자동 일련번호나 번호를 삽입하려는 열이나 셀을 선택합니다. 3. "시작" - "번호"를 클릭하세요. 4. 스타일 번호 중 하나를 선택합니다. 5.

간단한 JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법 간단한 JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법 Jan 05, 2024 pm 06:08 PM

JavaScript 튜토리얼: HTTP 상태 코드를 얻는 방법, 특정 코드 예제가 필요합니다. 서문: 웹 개발에서는 서버와의 데이터 상호 작용이 종종 포함됩니다. 서버와 통신할 때 반환된 HTTP 상태 코드를 가져와서 작업의 성공 여부를 확인하고 다양한 상태 코드에 따라 해당 처리를 수행해야 하는 경우가 많습니다. 이 기사에서는 JavaScript를 사용하여 HTTP 상태 코드를 얻는 방법과 몇 가지 실용적인 코드 예제를 제공합니다. XMLHttpRequest 사용

Word에서 테이블을 가로 및 세로로 전환하는 방법 Word에서 테이블을 가로 및 세로로 전환하는 방법 Mar 20, 2024 am 09:31 AM

Word 소프트웨어는 우리에게 없어서는 안될 소프트웨어이며 자주 사용해야 합니다. 이전에 Word 소프트웨어를 사용하여 표를 편집하는 방법을 배웠습니다. 그러나 실수로 표를 가로 및 세로 방향으로 편집하면 다시 시간을 낭비하고 싶지 않습니다. -만들고 보니 테이블의 가로, 세로 방향을 바꿀 수 있나요? 대답은 당연히 그렇습니다.다음으로 편집자가 Word에서 테이블을 가로 및 세로로 바꾸는 방법을 자세히 소개하겠습니다. 먼저 아래 Word 표의 행과 열을 바꿔야 합니다. 이렇게 하려면 먼저 테이블 전체를 선택한 다음 마우스 오른쪽 버튼을 클릭하고 복사 기능을 선택해야 합니다. 2단계: 복사를 선택한 후 단어를 최소화한 다음 Excel 테이블을 열고 마우스 오른쪽 버튼을 클릭하고 붙여넣기를 선택한 다음 Exc에 붙여넣습니다.

Word 표를 합산하는 방법을 알고 있나요? Word 표를 합산하는 방법을 알고 있나요? Mar 21, 2024 pm 01:10 PM

때때로 Word 테이블에서 계산 문제가 발생하는 경우가 많습니다. 일반적으로 이러한 문제가 발생하면 대부분의 학생들은 계산을 위해 Word 테이블을 복사하고 일부 학생들은 자동으로 계산기를 사용합니다. 빨리 계산하는 방법이 있나요? 물론, 실제로 합계는 Word에서도 계산할 수 있습니다. 그럼 어떻게 하는지 아시나요? 오늘은 함께 살펴보시죠! 더 이상 고민하지 말고, 도움이 필요한 친구들은 빨리 수집해야 합니다! 단계 세부사항: 1. 먼저 컴퓨터에서 Word 소프트웨어를 열고 처리해야 하는 문서를 엽니다. (그림 참조) 2. 다음으로 합산된 값이 있는 셀에 커서를 놓고(그림 참조) [메뉴 모음]을 클릭합니다.

See all articles