Mencipta Elemen Boleh Seret Menggunakan HTML, CSS dan JavaScript

WBOY
Lepaskan: 2024-08-06 15:14:50
asal
883 orang telah melayarinya

In modern web development, interactivity is key to engaging users and creating a dynamic user experience. One way to add interactivity is by making elements draggable. In this post, we will explore how to create a draggable element using HTML, CSS, and JavaScript.

output:

Creating a Draggable Element Using HTML, CSS, and JavaScript

HTML Structure
Let's start with the basic HTML structure. We will create a simple div element that we want to make draggable. Here's the code:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Draggable Element</title>
<link rel="stylesheet" href="styles.css">
</head>
<body>
<div class="draggable" id="draggableElement">Drag me!</div>
<script src="script.js"></script>
</body>
</html>

Salin selepas log masuk

In this code, we have a div with the class draggable and an ID of draggableElement. This will be the element that we make draggable.

Styling the Draggable Element with CSS

.draggable {
    position: absolute;
    cursor: grab;
    width: 100px;
    height: 100px;
    background-color: #007bff;
    color: #fff;
    text-align: center;
    line-height: 100px;
    border-radius: 8px;
    user-select: none;
}

.draggable.dragging {
    cursor: grabbing;
}

Salin selepas log masuk

In this CSS, we define the .draggable class to style our element. We set its position to absolute so that we can move it freely around the page. The cursor property is set to grab to indicate that the element is draggable. We also define the width, height, background color, text color, text alignment, and line height to center the text vertically and horizontally. The border-radius is added for rounded corners, and user-select: none is used to prevent text selection while dragging. Read More

Adding Interactivity with JavaScript

let draggableElement = document.getElementById('draggableElement');
let offsetX, offsetY;

draggableElement.addEventListener('mousedown', startDragging);
draggableElement.addEventListener('mouseup', stopDragging);

function startDragging(e) {
    e.preventDefault();
    offsetX = e.clientX - draggableElement.getBoundingClientRect().left;
    offsetY = e.clientY - draggableElement.getBoundingClientRect().top;
    draggableElement.classList.add('dragging');
    document.addEventListener('mousemove', dragElement);
}

function dragElement(e) {
    e.preventDefault();
    let x = e.clientX - offsetX;
    let y = e.clientY - offsetY;
    draggableElement.style.left = x + 'px';
    draggableElement.style.top = y + 'px';
}

function stopDragging() {
    draggableElement.classList.remove('dragging');
    document.removeEventListener('mousemove', dragElement);
}

Salin selepas log masuk

Start Dragging: The startDragging function is triggered when the user presses the mouse button down on the element. This function:

  1. Prevents the default behavior of the event using e.preventDefault().
  2. Calculates the offsets by subtracting the element's top-left corner position from the mouse position.
  3. Adds the dragging class to change the cursor.
  4. Adds an event listener for the mousemove event to the document, which will trigger the dragElement function.

Drag Element: The dragElement function is triggered when the mouse moves. This function:

  1. Prevents the default behavior of the event.
  2. Calculates the new position of the element based on the mouse position and the offsets.
  3. Updates the left and top CSS properties of the element to move it to the new position.

Stop Dragging: The stopDragging function is triggered when the user releases the mouse button. This function:

  1. Removes the dragging class to revert the cursor back to its original state.
  2. Removes the mousemove event listener from the document to stop the dragging. Read More

conclusion:
By understanding the basics of event listeners and DOM manipulation, we can add interactivity to our web projects, enhancing the user experience.

Read full article- click here

Atas ialah kandungan terperinci Mencipta Elemen Boleh Seret Menggunakan HTML, CSS dan JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!