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

JavaScript のみを使用して HTML 要素のサイズを変更できるようにするにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-07 15:30:15
オリジナル
421 人が閲覧しました

How Can I Make HTML Elements Resizable Using Only JavaScript?

純粋な JavaScript を使用したカスタマイズ可能な HTML 要素のサイズ変更

多くの場合、Web 開発者はサードパーティに依存せずに HTML 要素のサイズ変更可能なインターフェイスを提供する必要があります。図書館。この記事では、純粋な JavaScript を使用してこの機能を実現する方法について説明します。

HTML 要素のサイズを変更できるようにするには、イベント リスナーをアタッチしてマウス入力を監視し、それに応じて要素のサイズを調整します。これを実現するコードは次のとおりです。

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

p.addEventListener('click', function init() {
  p.removeEventListener('click', init, false);
  p.className = p.className + ' resizable';
  var resizer = document.createElement('div');
  resizer.className = 'resizer';
  p.appendChild(resizer);
  resizer.addEventListener('mousedown', initDrag, false);
}, false);

var startX, startY, startWidth, startHeight;

function initDrag(e) {
  startX = e.clientX;
  startY = e.clientY;
  startWidth = parseInt(window.getComputedStyle(p).width);
  startHeight = parseInt(window.getComputedStyle(p).height);
  document.addEventListener('mousemove', doDrag, false);
  document.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) {
  document.removeEventListener('mousemove', doDrag, false);
  document.removeEventListener('mouseup', stopDrag, false);
}
ログイン後にコピー

使用法:

このコードを段落などの目的の HTML 要素に適用するだけです。 (

):

<p>Resizable Text</p>
ログイン後にコピー

デモ:

[デモ リンク]

注:

このソリューションにはブラウザー間で互換性の問題がある可能性があることに注意してください。テスト済みで、Firefox では動作しますが、バージョン 9 より前の IE では動作しません。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート