モバイル端末上で畫像を一覧表示するWebページを作成する 以前はjQueryの遅延読み込みプラグインを使用してこの機(jī)能を?qū)g現(xiàn)していましたが、現(xiàn)在はjQueryや他のプラグインを使用できないことが求められます。 、この関數(shù)の実裝には angularjs のみが使用されます。畫像のパスは json に格納されており、json データ ng-repeat を読み取ることで取得されます。
何か良い解決策はありますか?
https://github.com/Treri/me-lazyload
https://github.com/Treri/me-lazyimg
2 つの関數(shù)は似ています。前者はスクロール用にドキュメント內(nèi)に配置され、後者は要素內(nèi)でスクロールするように設(shè)定できます。
感想:
1. 畫像のソースの実際のアドレスを使用しないで、屬性を使用して要素に保存します
。
2. ロードする必要があるすべての畫像を配列に入れます
3. 初期化中に、配列內(nèi)の要素が表示範(fàn)囲內(nèi)にあるかどうかを確認(rèn)し、表示範(fàn)囲內(nèi)にある場合はロードされます
。
4. スクロールイベントをウィンドウにバインドして、畫像が表示範(fàn)囲內(nèi)にあるかどうかを確認(rèn)します
5. 読み込んだ寫真はキューから削除されます
元のリンク: https://www.npmjs.com/package/angular-imglazyload
jquery のアプローチは、window.scroll を監(jiān)視し、畫像の位置と src 屬性を切り替える必要があるかどうかを判斷することです。これは angular にも當(dāng)てはまりますが、angular は命令に DOM 操作を記述する必要があるため、自分で命令を?qū)g裝するには、一般的な考え方は次のとおりです ;
リーリー リーリーリスナーを 1 つだけ使用して jquery のような効率を?qū)g現(xiàn)したい場合は、この LazyLoad のロジックで IMG をクエリする方法を考慮する必要があります
シンプルにして手間を省きたい場合は、img 屬性レベルでコマンドを直接記述するだけですが、これにより、畫像と同じ數(shù)のイベント コールバックが登録されます
http://afklm.github.io/ng-lazy-image/ このモジュールは多くの人が作成したもので、見た目も良く、非常に使いやすいです
。