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

推薦する

CSSの複数条件の書き方の詳細説明:

:not疑似クラスセレクターは、式に一致しない要素をフィルタリングできます。例 テーブル tbod...

HTML の隠しフィールドの紹介と例

基本的な構文: <input type="hidden" name=&qu...

CSS3 フレックスボックス自動記入の書き方を詳しく解説

この記事では、主に CSS3 フレックス エラスティック ボックスの自動塗りつぶしの書き方について詳...

deepin 2014 システムに MySQL データベースをインストールする方法

Deepin 2014 のダウンロードとインストールDeepin 2014 のダウンロードとインスト...

Vueのドラッグスクリーンショット機能を実装する簡単な方法

マウスをドラッグしてページのスクリーンショットを撮ります(指定した領域にスクリーンショットをドラッグ...

Dockerイメージをプルしてバージョンを確認する方法

イメージのバージョンとタグを確認するには、docker hubで確認する必要があります。アドレスは次...

レスポンシブ原則と Vue2.0/3.0 の違いについての簡単な分析

序文vue3.0 が正式にリリースされて以来、多くの友人が vue3.0 に切り替えました。ここでは...

純粋な CSS 実装 (スクリプトなし) HTML コマンド スタイルのツールチップ テキスト プロンプト効果

実行プロセスを分析します。マウスをノードに移動して、ノードにツールチップ実装を開くための識別子 (...

一般的な nginx コマンドをシェル スクリプトに組み込む方法の詳細な説明

1. nginxシェルスクリプトを保存するフォルダを作成する /usr/local/タスク/ngin...

MySQLクエリの基本的なクエリ操作の学習

序文MySQL は最も人気のあるリレーショナル データベース管理システムです。WEB アプリケーショ...

Ubuntu 20.04にSogou入力方式をインストールする詳細な手順

1. Fcitx入力フレームワークをインストールする関連する依存ライブラリとフレームワークは自動的に...

Linux は n 日前のログとサンプルコマンドを自動的に削除します

1. ファイル削除コマンド:対応するディレクトリを検索します -mtime + 日数 -name &...

jQuery の CSS スタイル属性 css() と width() の完全ガイド

目次1. css() の基本的な使用法: 1.1 CSSプロパティを取得する1.2 CSSプロパティ...

MySQL データベース SELECT クエリ式分析

データ管理の大部分は検索であり、SELECT はその大部分を占めています。 SELECT selec...