better-scrollプラグインのスライドできないバグについて(2021年プラグインで解決)

better-scrollプラグインのスライドできないバグについて(2021年プラグインで解決)

より良いスクロールの原則

親コンテナーであるため、ラッパーの高さはコンテンツのサイズに応じて増加します。そして、
コンテンツの高さが親コンテナの高さを超えていない場合は、スクロールできません。親コンテナの高さを超えると、コンテンツ領域をスクロールできるようになります。
BetterScrollはデフォルトでコンテナ(ラッパー)の最初の子要素(コンテンツ)のスクロールを処理し、他の要素は無視されるため、次のページ構造も与えられます。

<div class="wrapper">
 <ul class="content">
  <li>...</li>
  <li>...</li>
  ...
 </ul>
 <!-- ここに他の DOM を置くこともできますが、スクロールには影響しません -->
</div>

ですので、ここでは最も重要な点についてのみお話します。 ! !

圖片需要加載ため、better-scroll の初期化のタイミングは非常に重要です。初期化時に、親要素と子要素の高さと幅が計算されるからです。画像がまだ読み込まれていない状態で初期化すると、実際に計算された高さと実際の高さに大きな差が生じます (ネットワーク速度も影響します...)

これが、すべてのユーザーがスクロールできない最大の理由です。

数日前にこの問題に遭遇し、better-scroll ドキュメントにアクセスできなくなりました。github のドキュメントは、大まかにしか使えませんでした。解決策を探すのに丸一日かかりました。インターネット上にはさまざまな方法が出てきました。最適な解決策は次のとおりです。

プラグイン経由: better-scroll/observe-dom

BetterScroll は、スクロール可能な高さまたは幅を動的に計算します。高さまたは幅が変更されたときに、refresh() メソッドを手動で呼び出す必要はありません。プラグインは MutationObserver を介してこれを実行します

現在のブラウザが MutationObserver をサポートしていない場合は、setTimeout を使用するようにダウングレードされます。

使用

依存関係をインストールする npm install @better-scroll/observe-dom

'@better-scroll/core' から BScroll をインポートします。
'@better-scroll/observe-dom' から ObserveDom をインポートします。
BScroll.use(ObserveDom)

const bs = 新しいBScroll('.wrapper', {
 DOMを観察: 真
})

この問題には多くの解決策がありますが、インターネット上の多くの記事では明確に説明されていません。このプラグインを使用してください。

別の解決策としては、画像の読み込みを監視し、refresh()を呼び出して高さを再計算することです。

Vueはimgタグを使用し、 @load="定義一個方法"を使用して画像読み込みイベントを監視します。画像が読み込まれている限り、定義したメソッドが1回呼び出されます。

最後に、メソッド内に this.scroll.refresh() を記述して、画像を読み込み、一度更新して高さを再計算します。同時に、頻繁な繰り返し呼び出しによって発生するさまざまな問題を回避するために、手ぶれ補正機能を使用する必要があります。

以上でbetter-scrollプラグインのスライド不可についての記事は終了です(2021年にプラグインで解決)。better-scrollプラグインのスライド不可に関する関連コンテンツは、123WORDPRESS.COMの過去の記事を検索するか、以下の関連記事を引き続き閲覧してください。今後とも123WORDPRESS.COMをよろしくお願いいたします!

以下もご興味があるかもしれません:
  • Vueスクロールプラグインbetter-scrollの使い方の詳しい説明
  • Angularでbetter-scrollプラグインを使用する方法
  • vue better-scroll スクロールプラグインの詳細な説明
  • vue better-scrollプラグインの使い方の詳細な説明
  • Vueスクロール軸プラグインbetter-scrollの使い方の詳しい説明

<<:  NavicatでMySQLビッグデータをインポートする際のエラーの解決方法

>>:  MYSQL ロック解除とロックテーブルの紹介

推薦する

MySQL 起動エラー InnoDB: ロックできません/ibdata1 エラー

OS X 環境で MySQL を起動すると、エラー メッセージが表示されます。 016-03-03T...

web.config (IIS) および .htaccess (Apache) の構成

xml <?xml バージョン="1.0" エンコーディング="...

Tomcat サーバーの応答が遅い場合の解決策

1. 分析的思考1. 機械自身の理由を排除する2. サーバーパフォーマンス分析3. プロジェクト自体...

MySQL 接続で認証失敗エラーが発生する場合の分析と解決方法

[問題の説明]アプリケーション側では、次のエラーが時々表示されます。メソッド 'mysql_...

Mysql一時テーブルの原理と作成方法の分析

この記事は主にMysql一時テーブルの原理と作成方法を紹介します。この記事のサンプルコードは非常に詳...

ユーザーエクスペリエンスの要素またはWebデザインの要素

システムとユーザー環境の設計<br />Apple システムの成功は、そのシステム アー...

Javascript DOM、ノード、要素取得の紹介

目次DOMノード要素ノード:テキストノード:プロパティ ノード:要素を取得getElementByI...

XHTML+CSS Web ページ作成における美しいスタイルシートの適用

これはかなり前に書かれた記事です。今となっては、その中の考え方は学ぶ価値があるように思えます。jb5...

MYSQL は、指定されたユーザーのランキングとクエリを実装します。ランキング関数 (並列ランキング関数) のサンプルコード

序文この記事は主に、MYSQL でランキングを実現し、指定ユーザーランキング関数 (並列ランキング関...

HTML 選択タグにおける単一選択と複数選択の詳細な説明

select 要素は、単一選択または複数選択のメニューを作成します。フォームが送信されると、ブラウザ...

写真をアップロードして顔を認識する Vue+axios サンプルコード

目次Axios リクエストQs処理データ分析Vantアップロードファイル形式完全なコードこの記事では...

Three.js が Facebook Metaverse 3D ダイナミック ロゴ効果を実現

目次背景メタバースとは何ですか?成果を達成するトライアル 1: THREE.TorusGeometr...

MySql のサブクエリ内のクエリ例の詳細な説明

北西を見ると私の故郷はどこにあるでしょうか。南東の満月を何度見たことがあるでしょうか。月が再びゆっく...

vue+echarts で中国地図のフロー効果を実現する (詳細な手順)

@vue+echarts は中国地図のフロー効果を実現します#レンダリングを見てみましょう手順:コ...