ホームページ >ウェブフロントエンド >CSSチュートリアル >純粋な JavaScript のみを使用してサイズ変更可能な HTML 要素を作成するにはどうすればよいですか?

純粋な JavaScript のみを使用してサイズ変更可能な HTML 要素を作成するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-10 18:59:16935ブラウズ

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

純粋な JavaScript を使用したサイズ変更可能な HTML 要素の作成

問題:

HTML はどのように作成できますか

のような要素または <純粋な JavaScript のみを使用して、クリックするとサイズ変更可能ですか?

解決策:

HTML 要素をサイズ変更可能にするには、そのサイズを操作するカスタム サイズ変更機能を作成できます:

// 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);
});

サイズ変更機能:

マウスの動きを追跡し、要素のサイズを調整します:

// 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);
}

以上が純粋な JavaScript のみを使用してサイズ変更可能な HTML 要素を作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。