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

クリック後にポップアップボックスを実現し、上下左右に中央揃えし、灰色の透明マスクを追加してウィンドウ...

Vue スクロールダウンしてさらにデータを読み込む スクロールケースの詳細な説明

vue-無限スクロールインストール npm インストール vue-infinite-scroll -...

JS を使用して配列内の要素の存在を 10 分で判断する

序文フロントエンド開発では、配列内に要素が存在するかどうかを判断する必要があることがよくあります。実...

mysql8.0.19 の基本データ型の詳細な説明

MySQL 基本データ型一般的な MySQL データ型の概要 ![1036857-201708011...

左右の幅を固定し、中央の幅を適応させたHTMLレイアウトのソリューションの詳細な説明

この記事では、次のように、誰にでも共有できる左右幅固定のミドルアダプティブ HTML レイアウトソリ...

CSS 要素で計算されたスタイルを取得します (カスケード/最終スタイル後)

CSS 要素内の計算されたスタイル (つまり、カスケード後の最終的なスタイル) を取得するには、W3...

非常に便利なオープンソース Docker ツール 5 つを強くお勧めします

導入Docker コミュニティは、さまざまなユースケースを処理するのに役立つ多くのオープンソース ツ...

Vue3.0 で Vuex 状態管理を開始する方法をすぐに習得します

Vuex は、Vue.js アプリケーション専用に開発された状態管理パターンです。集中型ストレージを...

Vue シングルファイルコンポーネントの実装

最近、vue について読みました。これまで基本的に見落としていた単一ファイル コンポーネントを見つけ...

Ubuntu の空き容量を増やす 5 つの簡単な方法

序文ほとんどの人は、システム ディスク ストレージが少ないときにこの操作を実行するか、Linux シ...

Docker+jenkins+python3環境を使用して非常に詳細なチュートリアルを構築する

序文:自動化を記述した後、毎日サーバー上で実行する必要があります。このような問題に遭遇しました。Je...

リモートホスト上でスクリプトや命令を実行する Zabbix の詳細な説明

シナリオ要件1. zabbix_server Web インターフェースのスクリプト機能を使用すると、...

MacにMySQLデータベースをインストールする方法を教えます

Mac 用 MySQL をダウンロード: https://downloads.mysql.com/a...

IE6はmin-widthを実装している

まず第一に、この効果は古い話題であるはずだということはわかっています。今日ファイルを整理していたら、...

CSS リセットスタイルリセットの実装例

はじめに: すべてのブラウザには、「ユーザー エージェント スタイル シート」と呼ばれる、すべてのペ...