CSS はスクロールバーを非表示にしてコンテンツをスクロールする効果を実現します (3 つの方法)

CSS はスクロールバーを非表示にしてコンテンツをスクロールする効果を実現します (3 つの方法)

フロントエンド開発では、スクロールバーを非表示にしながらスクロールをサポートしなければならないという状況によく遭遇します。最も簡単な方法はiscrollプラグインを追加することですが、実はCSSでもこの機能を実現できるようになりました。私も多くの場所で使っています。この3つの方法を見てみましょう。

方法1: スクロールバーの幅を計算して非表示にする

このサイトのサイドバーでは、フロントエンドの日報にスクロールバーはありませんが、マウスを移動することでコンテンツをスクロールできます。この技術とは何ですか? 実際には、スクロール バーを配置して非表示にしただけです。

デモ

以下はコードの簡略版です。

<div class="外側のコンテナ">
    <div class="インナーコンテナ">
     ......
    </div>
</div>
.外側のコンテナ{
 幅: 360ピクセル;
 高さ: 200px;
 位置: 相対的;
 オーバーフロー: 非表示;
}
.内部コンテナ{
 位置: 絶対;
 左: 0;
 上: 0;
 右: -17px;
 下部: 0;
 オーバーフロー-x:非表示;
 overflow-y: スクロール;
}

このコードは、スクロール バーを 17 ピクセル右に移動します。これは、スクロール バーの幅とまったく同じです。この値は手動デバッグによって取得されました。 Chrome と IE では問題は見つかりませんでした。

方法2: 3つのコンテナを使用して囲むと、スクロールバーの幅を計算する必要がなくなります。

このコードを最初に見たのは、Microsoft のブログでした。これは、ボックス内のコンテンツを制限するために内部に追加のボックスが追加されていることを除けば、上記の私のアイデアと似ています。こうすることで、スクロールバーを表示せずにスクロールできます。

コードは次のとおりです。

<div class="外側のコンテナ">
     <div class="インナーコンテナ">
        <div class="content">
            ......
        </div>
     </div>
 </div>
//http://caibaojian.com/hide-scrollbar.html からのコード
.要素、.外部コンテナ {
  幅: 200ピクセル;
  高さ: 200px;
}

.外側のコンテナ{
  境界線: 5px 紫色;
  位置: 相対的;
  オーバーフロー: 非表示;
}

.内部コンテナ{
  位置: 絶対;
  左: 0;
  オーバーフロー-x:非表示;
  overflow-y: スクロール;
}

.inner-container::-webkit-scrollbar {
  表示: なし;
}

方法3: CSSでスクロールバーを非表示にする

同時に、記事では CSS を通じてスクロールバーを非表示にする方法も紹介されていますが、この方法は IE と互換性がなく、モバイル端末でのみ使用できます。
これは、カスタムスクロールバーの疑似オブジェクトセレクターです::-webkit-scrollbar。詳細については、前の記事を参照してください: CSS3カスタムWebkitスクロールバースタイル

ChromeとSafari

.element::-webkit-scrollbar { 幅: 0 !重要 }
IE10以上

.element { -ms-overflow-style: なし; }
ファイアフォックス

.element { オーバーフロー: -moz-scrollbars-none; }

要約する

CSSを使用してスクロールバーを非表示にしてコンテンツをスクロールする方法(3つの方法)についての記事はこれで終わりです。CSSを使用してスクロールバーを非表示にしてコンテンツをスクロールする方法の詳細については、123WORDPRESS.COMの以前の記事を検索するか、以下の関連記事を続けて閲覧してください。今後とも123WORDPRESS.COMを応援してください。

<<:  HTMLインライン要素とブロックレベル要素の基本概念と使用例

>>:  Vue グローバル フィルターの概念、注意事項、基本的な使用方法

推薦する

Linux ファイアウォール設定の詳細な手順 (yum ウェアハウス設定に基づく)

序文この実験では、デバッグ用に2つの仮想マシン(CentOs6とRed Hat 6)を準備します。 ...

Linux ソースコードからのソケット (TCP) バインドの詳細な説明

目次1. 最も単純なサーバー側の例2. バインドシステムコール2.1、inet_bind 2.2、i...

Chrome をクラッシュさせる CSS コードの行

一般的な CSS コードでは、UI レイアウトや互換性に関して軽微な問題が発生するだけです。しかし、...

Vueストレージにはブール値のソリューションが含まれています

Vueはブール値でストレージを保存します今日、問題に遭遇しました。バックグラウンドから返された真偽の...

Dockerイメージ構築原理の分析(Dockerをインストールしなくてもイメージを構築できる)

イメージの構築は、DevOps プロセスにおいて非常に重要なプロセスです。一般的に、イメージの構築と...

Js クラスの構築と継承のケースの詳細な説明

JS のクラスの定義や継承は本当に多様なので、別のノートブックを開いて記録しておきます。意味オブジェ...

モバイル端末におけるビューポートの具体的な使用法についての簡単な説明

目次1. 基本概念1.1 2種類のピクセル1.2 3つのビューポート2. ビューポート設定3. 1回...

Vue3は独自のページングコンポーネントをカプセル化します

この記事の例では、vue3 が独自のページングコンポーネントをカプセル化する具体的なコードを参考まで...

組み込み Linux で QT アプリケーションを再起動する簡単な方法 (QT4.8 qws ベース)

アプリケーション ソフトウェアには通常、次のようなビジネス要件があります。新しいバージョンの APP...

Node.js+expressメッセージボード機能実装例

目次メッセージボード必要なライブラリオープンソースプロジェクトプロジェクト構造メッセージボードnod...

docker で golang イメージに基づいて ssh サービスを構築する方法

以下は、docker の golang イメージに基づいて ssh サービスを構築するためのコードで...

tomcat デプロイメント プロジェクトの実装と IDEA との統合

目次Tomcat でプロジェクトを展開する 3 つの方法プロジェクトをwebappsディレクトリに直...

Linux で Grafana をインストールし、InfluxDB モニタリングを追加する方法

Grafana をインストールします。公式 Web サイトでは、直接インストールできる Ubuntu...

NavicatがLinuxサーバー上のMySQLに接続できない問題を解決する

最初は悲しい気持ちになりました。スクリーンショットは以下の通りです。 少し苦労しましたが、解決策は次...

Linux で SSH サーバー エイリアスを作成する 2 つの方法

序文SSH 経由でさまざまなリモート システムに頻繁にアクセスする場合は、このトリックを使用すると時...