Heim >Web-Frontend >CSS-Tutorial >Wie kann ich skalierbare HTML-Elemente nur mit reinem JavaScript erstellen?

Wie kann ich skalierbare HTML-Elemente nur mit reinem JavaScript erstellen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-10 18:59:16935Durchsuche

How Can I Create Resizable HTML Elements Using Only Pure JavaScript?

Anpassbare HTML-Elemente mit reinem JavaScript erstellen

Problem:

Wie können wir HTML erstellen? Elemente wie

oder

Beim Klicken in der Größe veränderbar, nur mit reinem JavaScript?

Lösung:

Um die Größe eines HTML-Elements veränderbar zu machen, können wir einen benutzerdefinierten Resizer erstellen, der seine Größe manipuliert:

// Element to make resizable
var p = document.querySelector('p');

// Initialize resizing on click
p.addEventListener('click', function() {

    // Remove click event listener and append resizer
    p.removeEventListener('click', init, false);
    p.className += ' resizable';

    var resizer = document.createElement('div');
    resizer.className = 'resizer';
    p.appendChild(resizer);

    // Attach mouse event listeners for resizing
    resizer.addEventListener('mousedown', initDrag, false);
});

Größenänderungsfunktion:

Wir verfolgen Mausbewegungen und Passen Sie die Größe des Elements an:

// Store initial values and mouse coordinates
var startX, startY, startWidth, startHeight;

function initDrag(e) {
    startX = e.clientX;
    startY = e.clientY;
    startWidth = parseInt(window.getComputedStyle(p).width, 10);
    startHeight = parseInt(window.getComputedStyle(p).height, 10);
    
    // Listen for mouse movement and update element's dimensions
    document.documentElement.addEventListener('mousemove', doDrag, false);
    document.documentElement.addEventListener('mouseup', stopDrag, false);
}

function doDrag(e) {
    p.style.width = (startWidth + e.clientX - startX) + 'px';
    p.style.height = (startHeight + e.clientY - startY) + 'px';
}

function stopDrag(e) {
    // Remove mouse event listeners
    document.documentElement.removeEventListener('mousemove', doDrag, false);
    document.documentElement.removeEventListener('mouseup', stopDrag, false);
}

Das obige ist der detaillierte Inhalt vonWie kann ich skalierbare HTML-Elemente nur mit reinem JavaScript erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn