【CSS】JavaScript不要、トラックパッドで横スクロール

サムネイル
当サイトで紹介する商品・サービス等の外部リンクは、アフィリエイト広告を含む場合があります。
スポンサーリンク
本記事を読むと以下の実行ができます

カーソルをのせて横スクロールすると、動く。

トラックパッドで横スクロール

トラックパッドは、主にノートパソコンに搭載されているマウスの代わりになる入力装置です。

最近はマウスやトラックボールの他にトラックパッドを使用する人も良く目にします。
トラックパッドが搭載されていないPCでも外付けで搭載する人がいるぐらい普及しています。

基本的な操作(デフォルト)

トラックパッドは4本指まで操作が可能です。

操作動作
1本指タップ左クリック
2本指タップ右クリック
3本指タップ検索ウィンドウ表示
4本指タップ通知ウィンドウ表示
1本指ドラッグカーソル操作
2本指ドラッグスクロール
3本指ドラッグ↑:マルチタスク・→:デスクトップ表示・←/↓:アプリ切り替え
4本指ドラッグ↑:マルチタスク・→:デスクトップ表示・←/↓:デスクトップ切り替え

ジェスチャーの変更は、Windowsの場合はトップ画面の「スタート」から設定を選択し、「Bluetoothとデバイス」の「タッチパッド」項目から変えることができます。

タッチパッド

トラックパッドは、マウスやトラックボールとは異なり横スクロールができます。
横スクロールは、ECサイトにて商品を紹介、比較する際に並べるウェブデザインを作成するときに便利です。

矢印を使えば操作デバイスに依存せずに、横スライドを実現することができます。

矢印で横スライドするデザインを紹介しています。

本記事では、トラックパッドを使って横スクロールするウェブデザイン(HTML/CSS)を紹介します。

横スクロールは、矢印で横にスライドする構成よりも作成しやすいのでおすすめです。

本記事は次の人におすすめ
  • トラックパッドで横スクロールすると動く。
  • ウェブデザインを学びたい。
Udemyで学習する
スポンサーリンク

横スクロール

横スクロールについて

トラックパッド横スクロールを可能にすることで、縦スクロールだけでは画面上に収まりきらない大量のコンテンツを表示する際に特に役立ちます。

例えば、水平方向に長い画像ギャラリーやデータのテーブルを表示する場合、
横スクロールはスペースの効率的な利用を可能にします。

特に画面のサイズが小さいスマホは、横向きのデザインは扱いやすく、
トラックパッドのようにタッチスクリーンを採用しているので非常に扱いやすいです。

一方で、 横スクロールは一般的な縦スクロールに比べて、
ユーザーの馴染みが少ない操作方法で、操作のヒントやガイドを提供する必要があります。
また、レスポンシブデザイン(スマホでのデザイン)の考慮しなければいけません。

HTML

  <div class="container">
    <div class="box"></div>
    <div class="box"></div>
    <div class="box"></div>
    <div class="box"></div>
    <div class="box"></div>
    <div class="box"></div>
    <!-- 必要な数の.box要素を追加 -->
  </div>

解説

HTMLコードで、6つのbox要素を含むContainer要素を作成しています。

class「Container」は横スクロールを可能な要素です。
class「Box」はclass「Container」に配置される要素を表します。

CSS

    .Container {
      display: flex;
      overflow-x: scroll;
      width: 100%;
    }

    .Box {
      flex-shrink: 0;
      width: 300px;
      height: 200px;
      margin-right: 10px;
      border-radius: 10px;
      background-color: #ccc;
    }

    /* スクロールバー非表示 */
    .Container::-webkit-scrollbar {
      display: none;
    }

解説

初めに、class「.Container」の構成します。

「display: flex;」: コンテナをフレックスボックスとして表示します。
これにより横並びを作成します。
「overflow-x: scroll;」: コンテナの横方向にスクロールバーを表示します。
コンテナ内のコンテンツがコンテナの幅を超えた場合にスクロールが可能になります。
「width: 100%;」: コンテナの幅を親要素の幅に合わせます。

つづいて、class「.Box」の構成します。

「flex-shrink: 0;」: ボックス要素の収縮を無効にします。これにより、ボックスの幅がコンテナの幅を超えた場合でも収縮しません。
「width: 300px;」: ボックス要素の幅を300ピクセルに設定します。
「height: 200px;」: ボックス要素の高さを200ピクセルに設定します。
「margin-right: 10px;」: ボックス要素の右側に10ピクセルのマージンを追加します。
「border-radius: 10px;」: ボックス要素の角を10ピクセルの半径で丸めます
「background-color: #ccc;」: ボックス要素の背景色を灰色(#ccc)に設定します。

最後に、.Container::-webkit-scrollbar:で、スクロールバーを非表示にします。

「display: none;」: スクロールバーを非表示にします。
※このコードはWebkitベースのブラウザ(Google Chrome、Safariなど)でのみ機能します。

UdemyでWebデザインを学習

Udemyは、オンデマンド式の学習講座です。
趣味から実務まで使えるおすすめの講座を紹介します。

ビックセール開催中(12月19日まで)
対象のコースが1500円から(最大95%OFF)

多彩な講座から自分に合った講座を探そう!

最大95%OFF

終了まで

時間




実演

それでは、本コードを理解したところで動作確認します。
HTMLとCSSを稼働させると以下のように動作します。

Document

まとめ

横スクロールはコンテンツの比較をするときに非常にユーザビリティに優れているので、
ECサイト等に導入するときに非常におすすめです。

また、スマホのように画面のサイズデバイスでは、タッチスクリーンを採用横向きのデザインは扱いやすいですが、レスポンシブデザイン(スマホでのデザイン)の考慮すること、横スクロールは一般的な縦スクロールに比べてユーザーにとって馴染みが少ない操作方法で、操作のヒントやガイドを提供する必要があります。

Udemyで学習する

付録.ソースコード(一括)

本記事で扱ったコードをHTMLで一括で記述したものです。

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    .Container {
      display: flex;
      overflow-x: scroll;
      width: 100%;
    }

    .Box {
      flex-shrink: 0;
      width: 300px;
      height: 200px;
      margin-right: 10px;
      border-radius: 10px;
      background-color: #ccc;
    }

    /* スクロールバー非表示 */
    .Container::-webkit-scrollbar {
      display: none;
    }
  </style>
</head>
<body>
  <div class="Container">
    <div class="Box"></div>
    <div class="Box"></div>
    <div class="Box"></div>
    <div class="Box"></div>
    <div class="Box"></div>
    <div class="Box"></div>
    <!-- 必要な数の.box要素を追加 -->
  </div>
</body>
</html>
タイトルとURLをコピーしました