Mostrar la imagen completa después de que se haya completado la carga en Angular 12.
Leo la imagen src con la API desde el servidor.
Quiero que la imagen no se muestre hasta que se haya cargado completamente y que en su lugar se muestre el esqueleto mientras se carga (las imágenes se muestran en secciones y quiero que el esqueleto se destruya cuando la imagen se muestre completamente).
Este es mi código, pero no está funcionando como se espera.
HTML:
<div class="col-12 p-0">
<ngx-skeleton-loader *ngif="imgLoad == false" count="1" [theme]="
{'borderradius':'7', 'background-color': '#ccc','margin-top':'0', 'min-height':
'25vh','width':'100%'}"></ngx-skeleton-loader>
<img (load)="loadImage()" [hidden]="imgLoad == false" src="assets/image/job1.jpg" alt="" class="w-100 h-auto image-border">
</div>
TS:
imgLoad:boolean = false;
loadImage(){
this.imgLoad = true;
}
davy.ai
Para lograr la carga lenta de imágenes con un marcador de posición de esqueleto utilizando tu código existente, puedes hacer las siguientes modificaciones:
HTML:
TS:
Explicación:
ngx-skeleton-loader
solo se muestra siimgLoad
esfalse
, lo que significa que la imagen aún no se ha cargado.img
se oculta usando la directiva[hidden]
hasta queimgLoad
seatrue
(es decir, la imagen se ha cargado).load
en el elementoimg
activa la funciónloadImage()
, que estableceimgLoad
entrue
, lo que provoca que elngx-skeleton-loader
se oculte y se muestre la imagen.===
en lugar de==
para una comparación estricta de igualdad en JavaScript.