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ファイルを導入する場合のパスの書き方について簡単にまとめます

推薦する

Linux で誤って削除したメッセージ ファイルを復元する方法

プロセスで使用されていて、誤って削除されたファイルがある場合、それらを回復することができます。プロセ...

Ubuntu での CUDA と CUDNN のインストールとアンインストールの実装

目次序文グラフィックドライバーをインストールするCUDAをアンインストールするCUDAをインストール...

CentOS 7 はネットワークカードを変更した後、インターネットにアクセスできません

不明なドメイン名 www.baidu.com を Ping するホストのIPアドレスを変更する右クリ...

Webフロントエンド開発コース Webフロントエンド開発ツールとは

インターネット技術の発展に伴い、ユーザーはますます Web ページに依存するようになり、Web フロ...

Ubuntu 18.04 に vsftpd をインストールするための実装コード

vsftpdをインストールする $ sudo apt-get install vsftpd -y v...

SpringBootはActiviti7実装コードを統合する

Activiti7 の正式リリース以降、SpringBoot2.x との統合開発を全面的にサポートし...

HTML テーブル_Powernode Java アカデミー

HTMLで表を描くには、表タグを使用します。 trは行を意味しますtdは列を示すth はテーブ...

優れたHTML印刷コードがページめくりをサポート

ylbtech_html_print HTML 印刷コード、ページめくりをサポートコードをコピーコー...

検証コード干渉を実装する js (動的)

この記事の例では、検証コードの動的干渉を実装するためのjsの具体的なコードを共有しています。具体的な...

MySQL でデータをクエリし、条件に基づいて別のテーブルに更新する方法の例

この記事では、MySQL が条件に基づいてデータをクエリし、別のテーブルに更新する方法を例を使用して...

CentOS 7.6 仮想ネットワーク カードのバッチ追加、変更、削除操作の紹介

1 カーネルにtunモジュールがあるかどうかを確認する modinfo tun modprobe t...

Vueプラグインの実装で発生した問題の概要

目次シーン紹介プラグインの実装問題1: 重複したヘッダーコンポーネント質問2: 別の実装アイデア質問...

Linux におけるシステム入出力管理の詳細な説明

システムの入力と出力の管理1. システムの入力と出力を理解するLinuxシステムでは、1は正しい出力...

Linuxシステムでノードプロセスを実行しているが、プロセスを強制終了できない問題を解決します

まず、Linux システムで実行されているノード プロセスはプロセスを強制終了できないことを紹介しま...

MySQL パラメータ関連の概念とクエリ変更方法

序文:以前の記事では、特定のパラメータの機能についてよく紹介してきました。しかし、MySQL パラメ...