Cách tạo phần tử HTML cuộn

Học cách sử dụng JavaScript và CSS để tạo phần tử HTML cuộn.

phần tử DIV cuộn

Nhấp vào đây để kéo

di chuyển

đây

DIV

Tạo phần tử DIV cuộn

Bước 1 - Thêm HTML:

<!-- DIV cuộn -->
<div id="mydiv">
  <!-- Chứa một DIV tiêu đề có cùng tên với DIV cuộn, sau đó là "header" -->
  <div id="mydivheader">Nhấp vào đây để kéo</div>
  <p>di chuyển</p>
  <p>đây</p>
  <p>DIV</p>
</div>

Bước 2 - Thêm CSS:

Kiểu样式 quan trọng duy nhất là position: absolute;,các phần còn lại do bạn quyết định:

#mydiv {
  position: absolute;
  z-index: 9;
  background-color: #f1f1f1;
  border: 1px solid #d3d3d3;
  text-align: center;
{}
#mydivheader {
  padding: 10px;
  cursor: move;
  z-index: 10;
  background-color: #2196F3;
  color: #fff;
{}

Bước 3 - Thêm JavaScript:

// Cho phép phần tử DIV di chuyển:
dragElement(document.getElementById("mydiv"));
function dragElement(elmnt) {
  var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
  if (document.getElementById(elmnt.id + "header")) {
    // Nếu có, tiêu đề chính là vị trí mà bạn di chuyển DIV:
    document.getElementById(elmnt.id + "header").onmousedown = dragMouseDown;
  }
    // Nếu không, di chuyển DIV từ bất kỳ vị trí nào trong DIV:
    elmnt.onmousedown = dragMouseDown;
  {}
  function dragMouseDown(e) {
    e = e || window.event;
    e.preventDefault();
    // Lấy vị trí con trỏ chuột khi bắt đầu:
    pos3 = e.clientX;
    pos4 = e.clientY;
    document.onmouseup = closeDragElement;
    // Gọi hàm khi con trỏ di chuyển: 
    document.onmousemove = elementDrag;
  {}
  function elementDrag(e) {
    e = e || window.event;
    e.preventDefault();
    // Tính toán vị trí con trỏ mới:
    pos1 = pos3 - e.clientX;
    pos2 = pos4 - e.clientY;
    pos3 = e.clientX;
    pos4 = e.clientY;
    // Đặt vị trí mới của phần tử:
    elmnt.style.top = (elmnt.offsetTop - pos2) + "px";
    elmnt.style.left = (elmnt.offsetLeft - pos1) + "px";
  {}
  function closeDragElement() {
    // Ngừng di chuyển khi thả nút chuột:
    document.onmouseup = null;
    document.onmousemove = null;
  {}
{}

Thử ngay