(en utilisant la dernière version de Firefox)Img chargement des images srcset lorsque le navigateur à la moitié de la taille de l'image
J'ai mon img
écrit comme ceci:
<body>
<script>
function imageLoaded(img) {
console.log('the responsive image is loaded');
img.className += ' loaded';
}
</script>
<img class="backgroundImage"
onload="imageLoaded(this)"
src="assets/water_bg_1920.jpg"
sizes="100vw"
srcset="assets/water_bg_2560.jpg 2560w,
assets/water_bg_1920.jpg 1920w,
assets/water_bg_1024.jpg 1024w"/>
</body>
et mon CSS-
@keyframes fadeIn
0%
opacity: 0
100%
opacity: 1
.backgroundImage
opacity: 0
.loaded
opacity: 1
animation: fadeIn 3s
Lorsque mon navigateur est au 960px
, il charge l'image 1920
. Au 512px
, il charge l'image 1024
. Quelque chose de plus élevé et il charge l'image 2560
.
Je suis très confus quant à exactement comment il est décidé de charger ces images à ces largeurs lorsque j'ai sizes
ensemble à 100vw
. Ne devrait-il pas utiliser l'image 1024
jusqu'à ce que la largeur du navigateur soit 1024px
, l'image 1920
lorsque la largeur du navigateur est de 1024px - 1920px
et que la valeur de 2560 img est supérieure? Suis-je mal compris quelque chose ici?
modifier: le comportement se produit également dans la dernière version de Chrome, sauf en plus du problème d'origine, il est chargement de l'image 2560
en plus à la plus petite image- à chaque fois!
edit2: dernière version de Safari se comporte comme Firefox.
edit3: trouvé fiddle effectué par quelqu'un d'autre test. il se comporte de la même manière (n'utilise pas l'image la plus petite jusqu'à ce que la largeur du navigateur soit égale à 50% de la taille de l'image). est-ce un bug? ou une caractéristique prévue de srcset
& sizes
?
Besoin de voir le code pour cette fonction: 'imageLoaded (ce)' et éventuellement le CSS pour '.backgroundImage' ainsi. – zer00ne
J'ai modifié le message original. Désolé, je ne pensais pas qu'ils étaient pertinents. – shanling
Pas de soucis, je pense que c'est la fonction qui vous décourage probablement, voyons ... – zer00ne