angular - Swiper 延迟加载不起作用(故障排除)
问题描述
我希望你能帮助我解决这个问题。我有一个使用swiper的 Angular 8 应用程序。我试图实现延迟加载配置,以便延迟加载 swiper 项中的图像,但它会加载所有这些图像并且工作起来就像我没有配置任何关于延迟加载的内容。
见https://swiperjs.com/api/#lazy
我在 typescript 中的 swiper 配置是这样的:
this.mySwiper = new Swiper('.swiper-container' {
//some configuration. Here it comes the important part
//...
watchSlidesVisibility : true,
preloadImages: false,
lazy: true,
breakpoints: {// Responsive
blablabla, more than 1 per view.
}
}
现在,html,我想在其中指出我为每个项目使用了一个组件,所以也许这就是它无法正常工作的原因:
<div class="swiper-container" [ngClass]="sliderConfig.name">
<div class="swiper-wrapper" *ngIf="!sourceImages"><!--A comprobation that really doesn't matter here-->
<div *ngFor="let model of models" class="swiper-slide">
<app-item [model]="model"></app-item>
</div>
</div>
<!-- Add Pagination -->
<div class="swiper-pagination"></div>
<!-- Add Arrows -->
<div class="swiper-button-next"><img src="../../../../../assets/images/gallery/swiper-button.svg" alt="Next"></div>
<div class="swiper-button-prev"><img src="../../../../../assets/images/gallery/swiper-button.svg" alt="Prev"></div>
</div>
最后,项目本身:
<div class="swiper-slide" (click)="viewproject()">
<div class="wrapper">
<img *ngIf="model" data-src="{{link}}" class="swiper-lazy"/>
<div class="swiper-lazy-preloader"></div>
</div>
</div>
它的行为就像我什么都没做,我的意思是,它在每个项目中加载图像,不管它是否应该,我已经尝试删除缓存,但它仍然(不)以相同的方式工作。
解决方案
嗨 swiper 没有检测到更改属性 data-src={{link}} 或 [data-src]="link"
所以使用[attr.data-src]="link"为我工作:)
<div class="swiper-slide" >
<div class="wrapper">
<img *ngIf="model" [attr.data-src]="link" class="swiper-lazy"/>
<div class="swiper-lazy-preloader"></div>
</div>
</div>
推荐阅读
- javascript - 是否可以为多实例 tinyMCE 的每个实例定义一个强制根块?
- uibutton - 您可以在关闭之外更改 IBAction 按钮的状态吗?- 斯威夫特 4
- php - 基于 OpenWRT 网络的 MP3 播放器
- node.js - 我想使用 NodeJS 中的 redis 库在 Redis 中的 hset 特定键中设置 Expiry
- python - 使用 .GET[] 时 /count/ 处的 MultiValueDictKeyError
- php - 上传时在 CodeIgniter 中调整图像大小并将调整后的图像保存在目录中
- javascript - 使用节点 js 和 socket.io 在 mysql 数据库中插入新记录时如何通知和更新客户端
- flutter - 在颤振应用程序中实现地点选择器对话框
- yii2 - 和以前一样,即使对于经过身份验证的用户,请求也总是重定向到登录页面
- mysql - 如何选择包含多个标签的 id?