ホームページ  >  に質問  >  本文

angular.js - angularjs如何实现图片延迟加载?

写一个移动端显示图片列表的web,以往都是使用jQuery的延迟加载插件来实现这一功能的,但是现在要求不能使用jQuery以及其他插件,仅使用angularjs实现这个功能。图片的路径是存储在一个json中,通过读取json的数据ng-repeat出来的。
请问有什么好的解决方法?

某草草某草草2736日前847

全員に返信(5)返信します

  • 仅有的幸福

    仅有的幸福2017-05-15 16:53:49

    https://github.com/Treri/me-lazyload
    https://github.com/Treri/me-lazyimg

    2 つの関数は似ています。前者はスクロール用にドキュメント内に配置され、後者は要素内でスクロールするように設定できます。

    返事
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-15 16:53:49

    感想:
    1. 画像のソースの実際のアドレスを使用しないで、属性を使用して要素に保存します
    。 2. ロードする必要があるすべての画像を配列に入れます
    3. 初期化中に、配列内の要素が表示範囲内にあるかどうかを確認し、表示範囲内にある場合はロードされます
    。 4. スクロールイベントをウィンドウにバインドして、画像が表示範囲内にあるかどうかを確認します
    5. 読み込んだ写真はキューから削除されます

    元のリンク: https://www.npmjs.com/package/angular-imglazyload

    返事
    0
  • 阿神

    阿神2017-05-15 16:53:49

    jquery のアプローチは、window.scroll を監視し、画像の位置と src 属性を切り替える必要があるかどうかを判断することです。これは angular にも当てはまりますが、angular は命令に DOM 操作を記述する必要があるため、自分で命令を実装するには、一般的な考え方は次のとおりです ;

    リーリー リーリー

    リスナーを 1 つだけ使用して jquery のような効率を実現したい場合は、この LazyLoad のロジックで IMG をクエリする方法を考慮する必要があります
    シンプルにして手間を省きたい場合は、img 属性レベルでコマンドを直接記述するだけですが、これにより、画像と同じ数のイベント コールバックが登録されます

    返事
    0
  • 天蓬老师

    天蓬老师2017-05-15 16:53:49

    http://afklm.github.io/ng-lazy-image/ このモジュールは多くの人が作成したもので、見た目も良く、非常に使いやすいです

    返事
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-15 16:53:49

    読み込みを遅らせるには $timeout を使用する必要があります

    返事
    0
  • キャンセル返事