Sahid Ferdjaoui Blog - Funraill Foundation Bienvenue, Log in - thème 2007 RC1

Powered by OpenSource Softwares

Outil de déboggage colaborative
reduire

Prechargement d’images en Javascript

le 19 août 2008 par sahid

Javascript, prechargement d’images (images loader)

Une fonction Javascript toute bete pour faire patienter vos visiteurs durant le chargement d’images un peu lourdes.

Exemple:

Source:

  1. preload = function (o, img_src, w, h) {
  2.   var img = new Image ();
  3.   img.onload = function () {
  4.     o.onload = null;
  5.     if (w) o.width  = w;
  6.     if (h) o.height = h;
  7.     o.src = img.src
  8.   };
  9.   img.src = img_src;
  10. }

preload.js

Ajout d’un effet de fade-in à la fonction (utilisé ici)

Exemple:

Source:

http://sahid.funraill.org/wp-content/uploads/2008/09/preload-with-fadein.html

Usage:

  1. <!– sans redimensionnement –>
  2. <img src=“images/ajax-loader.gif” onload=“preload (this, ‘images/larges/big.jpg’)”/>
  3.  
  4. <!– avec redimensionnement homothetique sur la largeur –>
  5. <img src=“images/ajax-loader.gif” onload=“preload (this, ‘images/larges/big.jpg, 300′)”/>
  6.  
  7. <!– avec redimensionnement homothetique sur la hauteur –>
  8. <img src=“images/ajax-loader.gif” onload=“preload (this, ‘images/larges/big.jpg, null, 300′)”/>
  9.  
  10. <!– avec redimensionnement –>
  11. <img src=“images/ajax-loader.gif” onload=“preload (this, ‘images/larges/big.jpg, null, 300, 400′)”/>

7 commentaires pour Prechargement d’images en Javascript

  1. Sylvain dit :

    Très très sympa, sauf le redimensionnement de l’image de chargement qui devient énorme…

  2. Steve Grosbois dit :

    Je pense plutot que ca marche comme ca :
    Il manque un petit “this”…

  3. sahid dit :

    Salut,

    Tres juste Steve, j’ai oublié le this dans mes exemples :) c corrigé.

    Sylvain, ton probleme de redimensionnement venait de là ?

  4. Ludo dit :

    Quel exemple d’accessibilité …
    Ceux qui n’ont pas le JS d’activé, ils font quoi ? Ils doivent alors chercher les images dans le code sources ?

  5. Catar4x dit :

    Si le JS n’est pas activé, l’image est préloadé normalement par la navigateur…
    y’a un src pour rien !

  6. Heirem dit :

    Ahh l’accessibilité c’est bien.
    Mais comme tout cela a des limites.
    A vouloir satisfaire tout le monde on ne satisfait personne.

    Et puis vous êtes trop habitués au tout mâché.
    Sahid vous propose un code génial, il ne tient qu’à vous de le rendre accessible ;)

  7. Heirem dit :

    Sahid, j’ai un problème à te soumettre en rapport avec ton code.
    Je chercher à effectuer la même chose mais concernant une image chargée en background par CSS.
    L’objectif est de redimensionner une image de bulle affichée par le plugin jQuery Tooltip 1.3.
    (http://jquery.bassistance.de/tooltip/demo/)
    De la redimensionner pour que sa taille s’adapte au texte qu’elle va contenir.

    Une telle image chargée par un CSS est déjà en mémoire une fois le body attaqué par le navigateur.
    Il faut donc pouvoir naviguer avec js dans le DOM pour l’atteindre et modifier sa taille.
    A moins qu’elle ne se charge, comme je le pense qu’au moment de la sollicitation de la balise CSS.
    Et, si tout cela est possible, plusieurs fois au sein d’une même page.

    Une petite idée ? Une piste ?
    Et, si tu veux bien, un nouveau challenge comme tu dis :)
    Cordialement
    Heirem

Tu peux laisser un commentaire pour Prechargement d’images en Javascript