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のシステム言語を簡体字中国語に変更する方法

推薦する

実用的なクイックスタートReactルーティング開発

インストールインストールするには、次のコマンドを入力します。 // ネプ npm で react-r...

Angular の 12 の典型的な問題について簡単に説明します

目次1. Angular 2 アプリケーションのライフサイクル フックとは何ですか? 2. Angu...

nginx設定ファイルの解釈の詳細な説明

nginx 設定ファイルは主に 4 つの部分に分かれています。 main{#(グローバル設定) ht...

openlayers6 マップオーバーレイの一般的な 3 つの用途 (ポップアップウィンドウマーカーテキスト)

目次1. 前に書く2. ポップアップウィンドウを実装するためのオーバーレイ2.1 vueページのad...

MySQLのlike演算子の詳細

1. はじめに不明な値または部分的に既知の値をフィルタリングする場合は、like 演算子を使用でき...

Windows Server 2008 R2 リモート デスクトップのポート 3389 を変更する方法

Windows サーバー リモート デスクトップのデフォルトのポート番号は 3389 です。職場でサ...

Linux環境で環境変数を設定する方法

JDKダウンロードアドレス: http://www.oracle.com/technetwork/j...

Vueはシンプルな計算機能を実装します

この記事では、参考までに、簡単な計算機機能を実現するためのVueの具体的なコードを紹介します。具体的...

CSS 疑似クラス: 空っぽだと光る (サンプルコード)

最近私の記事を読んだ人なら誰でも、私が現在WeChatミニプログラムプロジェクトを担当しており、その...

MySQL 5.7.21 履歴データディレクトリからデータを復元するチュートリアルの解凍バージョン

状況の説明: データベースが異常に起動およびシャットダウンしたため、サービスを再度起動したときに「起...

vue3.0 で要素を使用するための完全な手順

序文: vue3.0の要素フレームワークを使用します。要素はvue2.0をサポートしており、vue3...

Ansibleを使用してディレクトリ内のすべてのコンテンツを削除する方法

Ansible を使用する学生は、以下に示すように、Ansible が特定のフォルダーまたはファイル...

2018 年にリリースされる Apache Spark 2.4 の新機能は何ですか?

この記事は、2018 年 9 月 19 日に Adob​​e Systems Inc で開催された ...

CSS3の新しい背景プロパティの詳細な説明

これまで、CSS の背景の属性には、color、image、repeat、attachment、po...

Web プロジェクト開発における 2 つのトークン理由とサンプル コードの分析

目次質問:プロジェクトには 2 つのトークンがあり、1 つは有効期間が 2 時間 (ショート トーク...