WeChatアプレットを使用して天井効果を実現する方法の例

WeChatアプレットを使用して天井効果を実現する方法の例

背景は日付のタイトルです。ユーザーがスライドすると、現在の日付リストデータにスライドするときに天井効果があり、この効果は元のスタイルとは異なります。

1. 実装

  • スクロールビューはミニプログラムのネイティブコンポーネントです
  • handleScrollはスライド時にトリガーされるイベントです
  • scroll-yは垂直方向のスライドが許可されていることを意味します
  • クラスが fixed の要素は、スクロール ビュー コンテナーの上部に固定され、現在の日付が表示されます。
  • 動的バインディングクラスメソッドを使用して可視性の表示を制御する
  • クラス scheduleDay を持つ要素は、各日付のタイトルです。
  • データ値の値は日付にバインドされます

  • この関数は、スクロール ビューの上部からの各 scheduleDay 要素の距離と現在の日付のデータを処理します。
  • データは以下のように収集されます
  • wx.createSelectorQuery() の使用法の詳細 (通常は要素ノードの位置情報を取得するために使用されます)
  • developer.weixin.qq.com/miniprogram…
スケジュール情報:[
    {
       トップ: 8,
       現在の日付: '2021-08-15'
    },
    {
       トップ: 213,
       現在の日付: '2021-08-14'
    },
    {
       トップ: 555,
       現在の日付: '2021-08-13'
    },
    ...
]

  • e.detail.scrollTopはスクロールビューコンポーネントのスライド距離です。
  • スライドの高さが特定の要素ノードとスクロールビューの上部との間の距離以上の場合、現在のスライド日付を設定します。
  • 次に、固定位置にある要素の表示または非表示を制御して、

この記事ではCSSについてあまり詳しく説明しません。論理的思考が正しければ機能的な効果は得られます。

2. 問題点

  • handleScrollスライドイベントのトリガー頻度のエラーにより、固定要素は上部にスライドしても非表示になりません。
  • 引き上げると、固定要素と元の位置にある日付タイトルのUIエクスペリエンスが悪くなります。
  • 次の図を参照してください

この図はデフォルトのUI表示を示しています

ユーザーが日付の下のリストの位置にスライドしたときのUI表示、または問題の最初のポイントが存在する状況

すると、問題の2番目のポイントに影響します

3. より良い実装方法があるかどうか検討する

最初のアイデアは、各要素ノードの日付タイトルに対応するクラスを動的に追加して、個々のスタイルの変更を制御することでしたが、各要素のクラスは同じであり、この方法では解決できません。

変更は個々の要素ノードのスタイルを制御することによって行われますが、ブラウザの DOM とは異なり、ミニプログラムは dom.style.xxx を通じて個々の要素のスタイルを変更することはできません。

IntersectionObserverさん、この方法も試してみましたが、うまくいきませんでした。機会があればまた試してみます。

要約する

WeChatミニプログラムで天井効果を達成する方法についての記事はこれで終わりです。ミニプログラムによる天井効果に関するその他のコンテンツについては、123WORDPRESS.COMの以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも123WORDPRESS.COMをよろしくお願いいたします。

以下もご興味があるかもしれません:
  • WeChatアプレットがシンプルな天井効果を実現
  • WeChatアプレットがシンプルな天井効果を実現
  • WeChatアプレットはリストのスクロールヘッドシーリングのサンプルコードを実装します
  • 天井機能を実現するためのミニプログラムカスタムテンプレート
  • WeChatアプレットwxsが天井効果を達成
  • WeChatアプレットが天井効果を実現
  • WeChatアプレットが天井効果を達成
  • シンプルな天井効果を実現するミニプログラム

<<:  MySQL の遅いクエリ操作の例の分析 [有効化、テスト、確認など]

>>:  Centos7のシステム言語を簡体字中国語に変更する方法

推薦する

データベースのインデックス作成に関する知識ポイントのまとめ。必要な情報はすべてここにあります。

データベースインデックスについては皆さんもよくご存知だと思います。 インデックスは、データベース テ...

clipboard.js の使用法の概要

目次(1)はじめに: (2)クリップボードの内容をコピーする方法は次のとおりです。 (3)関数演算に...

廃止された Docker は Podman に置き換えられますか?

Kubernetes チームは最近、最新バージョンの Docker でサポートされている機能を廃止...

最新のmysql-5.7.21のインストールと設定方法

1. ダウンロードしたMySQLの圧縮パッケージをインストールディレクトリに解凍します。 2. 新し...

Windows (コミュニティ エディション) に MySQL 8.0.18 をインストールするためのチュートリアル

この記事では、Windows で MySQL をインストールする方法について簡単に説明します。他にご...

Dockerコンテナを閉じずに終了する方法の詳細な説明

Docker コンテナに入った後、コンテナを終了すると、コンテナは Exited 状態に変わります。...

インデックスを使用して MySQL ORDER BY ステートメントを最適化する方法

テーブルの作成とインデックスの作成 テーブルtbl1を作成( id int ユニーク、sname v...

MySQL パフォーマンス最適化インデックス プッシュダウン

インデックス条件プッシュダウン (ICP) は MySQL 5.6 で導入され、クエリを最適化するた...

Linux システム AutoFs 自動マウント サービスのインストールと構成

目次序文1. サービスプログラムをインストールする2. メイン設定ファイルを書く3. サブ構成ファイ...

便利でシンプルなMySQL関数10個

関数0. 現在の時刻を表示するコマンド: select now()。機能: 現在の時刻を表示します。...

Dockerコンテナのデータを復元する方法

プロジェクトのテスト環境データベースのデータが失われてしまったので、記録しておきたいと思います。当時...

nginx が複数のプロキシ層を通過して実際の送信元 IP を取得するプロセスの詳細な説明

質問Nginx は $remote_addr を実際の IP アドレスとして受け取りますが、実際には...

HttpとHttpsの両方をサポートするNginxの詳細な設定

最近の Web サイトでは Https をサポートすることがほぼ標準機能となっており、Nginx は...

JavaScript の便利な配列トリック 12 選

目次アレイ重複排除1. from() を新しい Set() メソッドに重ねる2. スプレッド演算子 ...