Perte de variable . . . mauvaise manipulation ?
Bonjour,
Depuis maintenant quelques jours j'ai débuté, en guise d'entraînement (études), l'intégration d'un site WEB, et je fait face à un problème au niveau d'un script fait main : le but de celui-ci est de gérer le chargement des images de façon asynchrone avec un GIF d'attente.
Voici comment le tout se compose :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
/**
* Un exemple de cible du script
**/
<div class="uk-background-cover uk-background-cover-loader" image_url='https://www.nasa.gov/sites/default/files/thumbnails/image/viirs_9apr2015.jpg'></div>
/**
* Le script (aucune abstraction pour le moment, j'ai fait au plus simple)
**/
<script>
$(document).ready(function () {
/** Récupération des éléments que l'on souhaite charger de manière asynchrone avec un GIF de chargement */
$('.uk-background-cover-loader').each(function () {
var target = $(this);
/** Création d'une image fantôme */
image_temp = new Image();
image_temp.src = target.attr("image_url");
/** Lorsque cette image est prête, on la transfère dans la cible */
image_temp.onload = function () {
/** On cache la cible avec un fade (le GIF est intégré via le sélecteur ::after de la cible via la classe "uk-background-cover-loader" */
target.fadeTo(300, 0, function () {
/** Lorsque la cible est caché, on retire la classe du GIF et on ajoute en style l'image, puis nettoyage des éléments inutiles */
target.css("backgroundImage", "url(" + image_temp.src + ")");
target.removeAttr("image_url");
target.removeClass("uk-background-cover-loader");
/** Réapparition de la cible avec l'image chargée */
target.fadeTo(300, 1);
});
}
});
});
</script> |
Le problème quel est-il ? Et bien, pour faire mes tests, j'ai mis en place deux cibles avec un lien (qui pointe vers un serveur d'image distant) différent en attribut (une légère et une volumineuse) : hors, lors de l'apparition des cibles, surprise, les deux ont la même images ...!
Comme si les variables étaient perdues...
Je vous remercie d'avance pour vos pistes et votre aide !
WFO