1. スクロールの実装原理better-scroll のスクロール原理は、ブラウザのネイティブスクロール原理と同じです。子ボックスの高さが親ボックスの高さより大きい場合、垂直スクロールが発生します。同様に、子ボックスの幅が親ボックスの幅より大きい場合、水平スクロールが発生します。 2. スクロールしやすいHTML構造まず、better-scroll の一般的な HTML 構造を見てみましょう。 <div class="wrapper"> <ul class="content"> <li>...</li> <li>...</li> ... </ul> </div> BetterScroll は外側のラッパー コンテナーに適用され、スクロール部分がコンテンツになります。 BetterScroll は、デフォルトでコンテナー (ラッパー) の最初の子要素 (コンテンツ) のスクロール処理を実行することに注意してください。つまり、他の要素は無視されます。 3. Vueでbetter-scrollを使用するnpm install better-scroll --save //npm install import BScroll from 'better-scroll' //コンポーネントファイルにbetter-scrollを導入する <テンプレート> /* 水平スクロール */ /* これは親ボックスです */ <div クラス="wrapper_box" スタイル="min-height:100vh; 「 ref="ラッパー" v-else > /* これはサブボックス、スクロール領域です*/ <div class="content" ref="wrapperChild"> <div v-for="(item, index) in currentImgList" :key="インデックス" クラス="imgItem" > <img :src="item.img" class="img" style="margin: 0 10px;" /> </div> </div> </div> </テンプレート> <スクリプト> 「better-scroll」からBScrollをインポートします。 エクスポートデフォルト{ データ() { 戻る { 現在の画像リスト: [ { 画像: require("../../assets/image/zzb_1.png") }, { 画像: require("../../assets/image/zzb_2.png") }, { 画像: require("../../assets/image/zzb_3.png") } ]、 }; }, マウント() { this.slide_x(); //水平スクロール}, メソッド: { // 初期化_initScroll() { スクロールすると this.scroll = new BScroll(this.$refs.wrapper, { // BScrollをインスタンス化し、2つのパラメータを受け入れます。最初のパラメータは親ボックスのDOMノードです。startX: 0, /// 詳細な設定情報については、better-scrollの公式ドキュメントを参照してください。ここでは繰り返しません。click: true, スクロールX: true、 scrollY: false, // 垂直スクロールを無視するeventPassthrough: "vertical", useTransition: false // 高速スライドによって引き起こされる異常なリバウンドを防ぐ}); } それ以外 { this.scroll.refresh(); //DOM 構造が変更された場合は、このメソッドを呼び出して再計算し、通常のスクロール効果を確保します} }, // 幅を計算する_calculateWidth() { // クラス名imgItemのタグを取得します。letrampageList = this.$refs.wrapperChild.getElementsByClassName( 「画像アイテム」 ); // 開始幅を設定します。let initWidth = 0; // ラベルをトラバースする for (let i = 0; i < rampageList.length; i++) { 定数項目 = 暴走リスト[i]; // 各ラベルの幅を追加します initWidth += item.clientWidth; } // スクロール可能な幅を設定します。this.$refs.wrapperChild.style.width = `${initWidth}px`; }, スライドx() { this.$nextTick(() => { //this.$nextTick は、DOM がレンダリングされたことを確認するための非同期関数です。 this._initScroll(); // 初期化 this._calculateWidth(); // 幅を計算 }); }, }, }; </スクリプト> 元のプラグインの作者は次のように述べています: 4. 問題が発生する可能性のあるポイント:
やっとこれは、better-scroll プラグインの作者による記事です。better-scroll は本当に強力だとわかりました。 より良いスクロールとVueが出会うとき Vue で better-scroll を使用して水平スクロールを実装する これで、vue で better-scroll を使用して水平スクロールを実現する方法についての説明は終わりです。vue で better-scroll を使用して水平スクロールを実現する方法に関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
一般的に言えば、より完全な結果を得るためには、2 つ以上のテーブルから結果を取得する必要があります。...
コードをコピーコードは次のとおりです。 <html> <!--混合フレームレイアウ...
1. デッドロックとは何ですか?正式な定義は次のとおりです: 2 つのトランザクションが相手側で必要...
デフォルトでは、MyISAM テーブルはディスク上に .frm (テーブル構造ファイル)、.MYD ...
目次導入インストールと使用方法文章の相違点と類似点の簡単な比較VuexとPiniaの長所と短所Pin...
機能: データ表示、テーブルアプリケーションシナリオ。 <table> テーブル<...
Linux では、通常、ファイルの名前を変更するために mv コマンドを使用します。これは、単一のフ...
この記事では、テーブルの動的な色の変更を実現するためのJavaScriptの具体的なコードを参考まで...
Linuxの基本設定 Linux環境でpython3をコンパイルしてインストールする 1. Linu...
概要: MySQL JDBC 抽出にはどのような方法を使用すればよいでしょうか? その方法を説明しま...
html.cssオーバーフローの包括的な理解XML/HTML コードコンテンツをクリップボードにコピ...
目次元に戻すログUNDOログの生成と破棄UNDOログの保存元に戻すログ機能トランザクションの原子性の...
概要Binlog2sql は、Python で開発されたオープンソースの MySQL Binlog ...
MySQL 文字列の連結、インターセプト、置換、および検索位置。よく使用される文字列関数:関数例示す...
この記事の例では、WeChatアプレットで写真をアップロードするための具体的なコードを参考までに共有...