速報

imgproxyのICO処理にコード実行のおそれ|4.0.16だけでは残る問題を確認

CATEGORY

【JavaScript】要素が横スクロール可能か判定する

※本ページのリンクにはプロモーションが含まれています。

【JavaScript】要素が横スクロール可能か判定する

目次

本記事では、JavaScriptで要素が横スクロール可能か判定する方法をご紹介しています。

JavaScriptで要素が横スクロールできるか確認したいな。良い方法ないかな?

上記の疑問にお答えします。

では、解説していきます。

スポンサーリンク

横スクロールの判定について

横スクロールの判定方法について説明します。JavaScriptで要素が横スクロール可能であるかを判定する方法はいくつか選択肢があると思いますが、本記事では下記の手順でスクロール可能な要素か判定します。

  • 指定した要素のwidthを取得する
  • 指定した要素の子要素のwidthを取得した
  • 指定した要素のwidthと子要素のwidthを比較する
  • 子要素のwidthの値が大きければ横スクロール可能と判定する

要素が横スクロール可能か判定する

前項の判定方法をふまえて、要素が横スクロール可能であるかを判定します。検証用として、対象の要素と子要素にはCSSでwidthにpxで固定値を指定します。下記に記載しているサンプルでは、子要素が横スクロール可能な状態となります。

HTML

<div class="target">
    <table>
        <tbody>
            <tr>
                <th>...</th>
                <td>...</td>
            </tr>
        </tbody>
    </table>
</div>

CSS

.target {
    width: 500px;
    margin: 0 auto;
    overflow-y: auto;
}

table {
    display: table;
    width: 1280px;
    border-collapse: collapse;
}

table th,
table td {
    padding: 10px 20px;
    border: 1px solid #384878;
    
}

JavaScript

//対象要素取得
const target = document.querySelector('.target');
//対象要素の中で最初に出現する子要素を取得
const targetChild = target.children[0];

//対象要素と子要素をwidthを比較
if(target.clientWidth < targetChild.clientWidth){
    console.log('横スクロール可能です');
} else {
    console.log('横スクロールの必要はありません');
}

実行結果

See the Pen Untitled by ryohei (@intotheprogram) on CodePen.

実行結果は表示上に変化はありませんが、コンソールにメッセージを出力するようにしています。ブラウザの開発ツールを開いてコンソールをご確認ください。埋め込み右上の「EDIO ON CodePen」からソースを確認したり編集したりできますので、色々なパターンで試してみてください。

スポンサーリンク

最後に

本記事の内容を肉付けするとスマホサイトなどでよく見かけるスクロールヒントを自作できると思います。横スクロールの位置はscrollLeftで取得することができるので、興味がある方は自分だけのスクロールヒントを自作してみてもいいかもしれませんね。

以上、JavaScriptで要素が横スクロール可能か判定する方法のご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / アプリ開発者 / 技術ブログ運営者

福岡のWeb制作会社に勤務するWebエンジニアです。10年以上にわたりWeb制作・開発に携わり、ヒアリングや進行管理から、コーディング、CMSの構築、システム開発、サーバーの構築・保守・運用まで、Webサイト制作の工程を幅広く担当しています。Webサイトは、これまでに100以上の構築・保守を手がけてきました。

個人でもWebサイトの制作・改修やWebアプリの開発・運用を行い、AIを活用した開発にも取り組んでいます。近年はWebセキュリティにも注力しています。

2015年から技術メディア「Into the Program」を運営し、実務や開発で得た知識をもとに、プログラミングの実装方法やWebサイトの運用・セキュリティ情報を発信しています。

主な分野
Webサイト構築・保守・運用 / HTML/CSS / JavaScript / PHP / WordPress / サーバー構築・保守・運用 / アプリ開発 / セキュリティ対策
資格・試験合格
情報セキュリティマネジメント試験
基本情報技術者試験
AWS認定ソリューションアーキテクト アソシエイト
PHP8技術者認定ウィザード
メディア運営
2015年〜

記事の作成・更新について

セキュリティ記事は、ベンダーの公式アドバイザリやCVE・JVNなどの一次情報を参照し、出典と情報確認日を記載します。実環境での検証を行った場合は、その環境と確認範囲を明示します。重要な追加情報や誤りを把握した場合は、内容を確認して追記・訂正します。

関連する記事

おすすめの書籍

キーワードから探す

スポンサーリンク