ホームページ >ウェブフロントエンド >jsチュートリアル >スクロールバーが表示されていない場合でも、JavaScript は HTML 要素内のオーバーフローしたコンテンツをどのように検出できるのでしょうか?

スクロールバーが表示されていない場合でも、JavaScript は HTML 要素内のオーバーフローしたコンテンツをどのように検出できるのでしょうか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-29 19:34:12602ブラウズ

How Can JavaScript Detect Overflowed Content in HTML Elements, Even Without Visible Scrollbars?

JavaScript を使用した HTML 要素内のオーバーフロー コンテンツの検出

Web 開発では、要素のコンテンツが要素の範囲を超えてオーバーフローしないようにすることが重要です。スクロールバーが表示されない場合でも、境界。この問題は、たとえば、サイズが固定され、「overflow」プロパティが「visible」に設定されている要素で発生する可能性があります。

要素がコンテンツをオーバーフローしたかどうかを判断するには、JavaScript を利用できます。標準的なアプローチでは、要素の client[Height|Width] とそのスクロール [Height|Width] を比較します。ただし、オーバーフロー プロパティが「visible」に設定されている場合、これらの値は同一になります。

この問題に対処するには、次の JavaScript 関数で例示されるように、より複雑な検出ルーチンが必要です。

function checkOverflow(el) {
   var curOverflow = el.style.overflow;

   if (!curOverflow || curOverflow === "visible")
      el.style.overflow = "hidden";

   var isOverflowing = el.clientWidth < el.scrollWidth
      || el.clientHeight < el.scrollHeight;

   el.style.overflow = curOverflow;

   return isOverflowing;
}

この関数は、scrollHeight とscrollWidth の値を正しく計算するために、要素の「オーバーフロー」スタイルを一時的に「非表示」に設定します。計算後、元のオーバーフロー スタイルが復元されます。これらの値を要素の clientHeight および clientWidth と比較することで、要素が垂直方向または水平方向にオーバーフローしているかどうかを判断できます。

このアプローチは、Firefox 3、Firefox 40.0.2、Internet Explorer などのさまざまなブラウザーでテストされています。 6、および Chrome 0.2.149.30.

以上がスクロールバーが表示されていない場合でも、JavaScript は HTML 要素内のオーバーフローしたコンテンツをどのように検出できるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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