純粋な CSS3 で水平無限スクロールを実装するためのサンプル コード

純粋な CSS3 で水平無限スクロールを実装するためのサンプル コード

この記事の例はすべて小さなプログラムで書かれていますが、実装される機能には影響しません。

wxml

ループ画像の最初と最後がつながるように、画像を含むボックスのコピーをもう1つ作成します。

<view class="scrollbox dis-flex">
    <view class="imgItem dis-flex" style="animation: {{computedAni}};">
      <image src="../img/{{index + 1}}.jpg" wx:for="{{images}}" mode="aspectFill" wx:key="index"></image>
    </ビュー>
    <view class="imgItem dis-flex" style="animation: {{computedAni}};">
      <image src="../img/{{index + 1}}.jpg" wx:for="{{images}}" mode="aspectFill" wx:key="index"></image>
    </ビュー>
</ビュー>

wxss

.dis-flex {
  ディスプレイ: フレックス;
  ディスプレイ: -webkit-flex;
}
.スクロールボックス{
  マージン: 30px;
  テキスト配置: 中央;
  境界線: 1px 青
  高さ: 220rpx;
  アイテムの位置を中央揃えにします。
  オーバーフロー: 非表示;
}
.imgアイテム{
  アニメーション: 24 秒の rowup 線形無限通常;
}
.imgItem 画像 {
  幅: 200rpx;
  高さ: 200rpx;
  マージン: 0 20rpx;
}
@keyframes 行アップ {
  0% {
      -webkit-transform: translate3d(0, 0, 0);
      変換: translate3d(0, 0, 0);
  }
  100% {
      -webkit-transform: translate3d(-100%, 0, 0);
      変換: translate3d(-100%, 0, 0);
  }
}
@-webkit-keyframes rowup {
  0% {
      -webkit-transform: translate3d(0, 0, 0);
      変換: translate3d(0, 0, 0);
  }
  100% {
    変換: translate3d(-1000px, 0, 0);
    変換: translate3d(-1000px, 0, 0);
  }
}

js

速度を調整する鍵は、ループされるアイテムの数によってアニメーション時間が動的に制御されることです。

ページ({
  データ: {
    画像: 新しい配列(4)、
    計算されたアニ: ''
  },
  onLoad: 関数 () {
    this.setAniSpeed(this.data.images.length)
  },
  setAniSpeed(数値) {
    let time = Math.ceil(num / 5 * 15) // ここでは、画像が 5 枚ある場合のアニメーション時間は 15 秒です。自分で調整できます this.setData({
      computedAni: `${time}s rowup 線形無限通常`
    })
  }
})

コードスニペットを表示するにはここをクリックしてください

https://developers.weixin.qq.com/s/4gGngEm67Zlh

純粋な CSS3 で水平無限スクロールを実装するサンプルコードに関するこの記事はこれで終わりです。CSS3 水平無限スクロールに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

<<:  Docker を使用して開発環境を構築する方法 (Windows および Mac)

>>:  HTML a タグの href 属性を使用して相対パスと絶対パスを指定する方法

推薦する

Node.js を使用してパスワード ジェネレータを作成するための完全な手順

目次1. 準備2. コマンドラインの記述2.1 バージョンと説明を追加する2.2 パスワードの長さを...

MySQL InnoDB MRR 最適化ガイド

序文MRR は Multi-Range Read の略で、ランダム ディスク アクセスを削減し、ラン...

UnityはMySQLに接続し、テーブルデータの実装コードを読み取ります

表は以下のとおりです。 Unity が読み取って呼び出すときのコード: データベース内の別のテーブル...

Apache ポートに基づいて仮想ホストを作成する例

apache: ポートに基づいて仮想ホストを作成する仮想ホスト(a、b、c)の作成を例に挙げます1)...

HTML における要素の水平および垂直中央揃えに関する議論

ページをデザインするときには、ログイン ウィンドウを中央に配置するなど、DIV を中央に配置し、ペー...

MySQL の order by ステートメントの最適化方法の詳細な説明

この記事では、ORDER BY文の最適化について学びます。その前に、インデックスの基礎的な理解が必要...

HTML に基づいてページを更新せずにフォーム送信を実装する

ページを更新せずにフォーム送信を実装するために Ajax を使用することは、プロジェクトでよく使用さ...

Tomcat ソースコード起動コンソールの中国語文字化けのデバッグプロセス記録

問題を見つける今日はTomcatのソースコードを勉強するつもりなので、公式サイトからTomcatのソ...

VUEをベースにしたシンプルな学生情報管理システムの実装

目次1. 主な機能2. 実装のアイデア3. コードの実装4. エフェクト表示V. 結論1. 主な機能...

SqlクエリMySqlデータベーステーブル名と説明テーブルフィールド(列)情報

以下では、SQL クエリ ステートメントを使用して、Mysql データベース内のテーブルのテーブル名...

AIX マウント NFS の書き込み効率が低い場合の解決策

NFSが提供するサービスマウント: サーバー上で /usr/sbin/rpc.mountd サーボ ...

React イベントバインディングの詳細

目次クラスコンポーネントイベントバインディング関数コンポーネントイベントバインディング要約するRea...

MySQL で URL タイムゾーンの罠を回避する方法

序文最近、MySQL 6.0.x 以降の jar を使用する場合、コード URL リンクで serv...

JSでユーザーを追跡する方法

目次1. 同期AJAX 2. 非同期AJAX 3. ユーザーのクリックを追跡する4. リバウンドトラ...

win2008 で mysql8.0.11 を mysql8.0.17 にアップグレードする詳細な手順

アップグレードの背景: MySQLの下位バージョンの脆弱性を解決するために、MySQLはMySQL ...