CSS3はリストの無限スクロール/カルーセル効果を実現します

CSS3はリストの無限スクロール/カルーセル効果を実現します

効果プレビュー

効果プレビュー

アイデア

現在のリストを最後の項目までスクロールし、すぐに最初の項目に戻ります。

問題

1. 無限カルーセルを実装するにはどうすればいいですか? 問題は、リストを最後までスクロールすると、下部に空白スペース (余分なスペース) ができてしまうことです。 どのように対処すればよいですか?
リストの先頭にある重複項目リストの末尾に追加するだけです (たとえば、図の 10 以降の 1、2、3、4、5 は重複項目です)。
追加される重複項目の数は、現在のリストの高さとリスト項目の高さによって決まります。例:
リストの高さが150pxで、リスト項目の高さ30px場合、空白を削除するには、現在のリストの末尾に150 / 30 = 5の重複項目を追加する必要があります。

2. ユーザーが気付かないうちに最初の項目に戻れるようにするにはどうすればよいでしょうか。重複した項目を追加した後、切り替えのタイミングを制御し、リストが最後の項目の末尾(重複した項目の最初の項目の先頭)までスクロールするとすぐに切り替えます。例えば:
リストに10項目がある場合、リスト10 * 30px = 300pxまで移動したときにすぐに切り替えて、気づかれない切り替えを実現します。

コード

<!DOCTYPE html>
<html lang="ja">
<ヘッド>
    <メタ文字セット="UTF-8">
    <title>無限スクロールリスト</title>
</head>
<スタイル>
    。容器 {
        位置: 相対的;
        背景色: #a4ffcc;
        /* 親コンテナには明確な高さが必要です */
        高さ: 150px;
        幅: 200ピクセル;
        マージン: 自動;
        オーバーフロー: 非表示;
    }

    .コンテナ > .スクロールリスト {
        位置: 絶対;
        上: 0;
        左: 0;
        幅: 100%;
        アニメーション: 6 秒のスクロール、線形、無限、通常;
    }

    .container > .scroll-list > div {
        幅: 100%;
        /* スクロール可能なアイテムには特定の高さが必要です */
        高さ: 30px;
        背景色: #1ea7ff;
        ディスプレイ: フレックス;
        コンテンツの中央揃え: 中央;
        アイテムの位置を中央揃えにします。
        色: 白;
    }

    .container > .scroll-list > div:nth-child(2n) {
        背景色: #18d9f8;
    }

    @keyframes スクロール {
        100% {
            /*スクロールするコンテンツの合計高さ*/
            上: -300px;
        }
    }
</スタイル>
<本文>
    <div class="コンテナ">
        <div class="スクロールリスト">
            <div>1</div>
            <div>2</div>
            <div>3</div>
            <div>4</div>
            <div>5</div>
            <div>6</div>
            <div>7</div>
            <div>8</div>
            <div>9</div>
            <div>10</div>
            <!-- 次のコードは、スクロール コンテンツをもう 1 画面表示できるようにします (空白スペース/無限カルーセルを削除)。高さに応じて数値を計算してください -->
            <div>1</div>
            <div>2</div>
            <div>3</div>
            <div>4</div>
            <div>5</div>
        </div>
    </div>
</本文>
</html>

CSS3 でリストの無限スクロール/カルーセルを実装する方法についての記事はこれで終わりです。CSS3 リスト スクロールとカルーセルに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  CSS スタイルを HTML 外部スタイルシートにインポートする方法

>>:  HTMLファイルで外部CSSファイルを導入する場合のパスの書き方について簡単にまとめます

推薦する

JavaScript でプライベート メンバーを作成する

目次1. クロージャを使用する2. ES6クラスを使用する3. ES2020提案を使用する4. We...

MySQLは1億のテストデータを素早く挿入します

目次1. テーブルを作成する1.1 テストテーブルt_userを作成する1.2 一時テーブルの作成2...

docker エントリポイントファイルの詳細な説明

Dockerfile を作成するときは、コンテナが起動する前に初期化構成やカスタム構成を実行するため...

大規模なウェブサイトアーキテクチャを設計・構築する際に考慮すべき10の課題

ここでは、PHP、JSP、または .NET 環境については説明しません。アーキテクチャの観点から問題...

jsを呼び出すいくつかの方法が整理され、使用が推奨されています

a タグではクリック イベントがよく使用されます。 1. href="javascript...

Linux で最も頻繁に使用されるターミナル コマンドのトップ 10 のリストを取得します。

私が最も頻繁に使用するコマンドは次の通りです:選択肢CDギットls ssh須藤数週間前、私はこの R...

CSS 境界線の半分または部分的に表示される実装コード

1. 疑似クラスを使用して境界線の半分を表示する <!DOCTYPE html> <...

Linux環境にMySQLデータベースをインストールする詳細なチュートリアル

1. データベースをインストールする1) yum -y install mysql-server (...

Win10 での MySQL 8.0 ログインでユーザー 'root'@'localhost' のアクセスが拒否される (パスワード使用: YES) 問題の解決方法

最近、MySQL を学び始めました。インストールはスムーズに進み、インターネット上の既成のチュートリ...

MySql ストアド プロシージャ パラメータの初歩的な使用法の詳細な説明

パラメータでのストアドプロシージャの使用IN パラメータは、プロシージャに情報を渡すためにのみ使用さ...

テキストエリアのテキスト入力領域に改行を実装する方法

textarea 入力領域でテキストを折り返す場合は、<br/> と入力すると <...

MySQLアカウントのIP制限条件を変更する方法

序文最近、仕事で、MySQL ユーザーの権限を変更するには、特定の IP アドレスへのアクセスを制限...

JavaScript データ型変換の例 (他の型を文字列、数値型、ブール型に変換する)

序文データ型変換とは何ですか?フォームまたはプロンプトを使用して取得されるデフォルトのデータ型は文字...

Ubuntu で時刻同期に NTP を使用する

NTP は、ネットワーク上で時間を同期するための TCP/IP プロトコルです。通常、クライアントは...

スタックメニューを実装するためのjQueryプラグイン

jQueryプラグインの毎日の積み重ねメニュー、参考までに、具体的な内容は次のとおりです。スタックメ...