Maison > interface Web > tutoriel CSS > Comment puis-je créer des éléments HTML redimensionnables en utilisant uniquement du JavaScript pur ?

Comment puis-je créer des éléments HTML redimensionnables en utilisant uniquement du JavaScript pur ?

Mary-Kate Olsen
Libérer: 2024-12-10 18:59:16
original
954 Les gens l'ont consulté

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

Création d'éléments HTML redimensionnables avec du JavaScript pur

Problème :

Comment pouvons-nous créer du HTML des éléments comme

ou

redimensionnable en cliquant, en utilisant uniquement du JavaScript pur ?

Solution :

Pour rendre un élément HTML redimensionnable, nous pouvons créer un redimensionneur personnalisé qui manipule sa taille :

// 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);
});
Copier après la connexion

Fonctionnalité de redimensionnement :

Nous suivons le mouvement de la souris et ajustons le taille de l'élément :

// 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);
}
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal