ホームページ  >  記事  >  ウェブフロントエンド  >  AngularJSでSwiperを使用してスライドできないスクロールチャートを作成する問題の解決策

AngularJSでSwiperを使用してスライドできないスクロールチャートを作成する問題の解決策

高洛峰
高洛峰オリジナル
2016-12-06 16:13:191087ブラウズ

Swiper は現在人気のモバイル タッチ スライド プラグインで、シンプルで使いやすく、多くのフロントエンド開発者に歓迎されています。

今日、Swiper を使用しているときにこの問題に遭遇しました:

angularjs 動的ループを使用して swiper-slide クラスを生成し、swiper-wrapper で 6 つを超えるスライディング ページを生成しますが、2 番目のページを描画できません。longSwipesRatio Modify を変更してみてください値を最小値に設定しましたが、それでも動作しません。

<div class="swiper-wrapper" >
<!-- =======循环部分======= -->
<div class="swiper-slide" ng-repeat="result in mediaList">
//此处为一个滑动页内容
</div>
<!-- ============== -->
</div>
</div>

テスト中に、n 個のループ部分を手動でコピーすると、n 個のブロックをスライドできることがわかりました。ページ ドキュメントが変更されるようにウィンドウ サイズを手動で調整した後 (動的応答)、スライドできることがわかりました。通常は。

そこで私は、スワイパーのメカニズムは次のように推測しました。初期化中に、スワイパー ラッパー クラスの下にスワイパー スライド クラス ブロックがいくつあるかを自動的にスキャンし、次にスライドできるブロックの数をスキャンします。 Angular では、常にスワイパーの初期化後に定義され、スワイパーはスライドの数を正しくスキャンできない (実際にはループするテンプレートを見つける) ことができないため、移動できません。

原因がわかったら、適切な薬を処方するだけです。 Swiper の API を確認すると、observer とobservParents の 2 つのパラメータがあることがわかりました。前者は、スワイパーのスタイルを変更するとき (非表示/表示など)、またはスワイパーのサブ要素を変更するときに動的チェッカーを起動し、自動的にスワイパーを初期化します。後者の原理は前者と同じですが、観察が Swiper の親要素に適用される点が異なります。どちらのデフォルト値も false です。 したがって、これらの 2 行を元のスワイパー初期化コードに追加するだけです。

りー


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。