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
Freigeben: 2024-12-10 18:59:16
Original
959 Leute haben es durchsucht

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);
});
Nach dem Login kopieren

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);
}
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage