IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Progress bar pour images


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2014
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2014
    Messages : 50
    Points : 39
    Points
    39
    Par défaut Progress bar pour images
    bonjour,
    Je suis entrain de construire un site en parallax avec des images en background en css.
    Existe-il un moyen de faire une bar de chargement des images en javascript.
    Ca se fait plus facilement quand on utilise la balise image voir : https://codepen.io/JTParrett/pen/EcwlF
    mais ici j'utilise background-image.
    Merci

  2. #2
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 873
    Points : 3 717
    Points
    3 717
    Par défaut
    Salut,

    Ben je n'ai pas compris, ce que tu donnes en lien ne te convient pas ?

    Sinon on en a discuté dans un fil, il y a un exemple concret d'ailleurs ici : Insérer un "loader" dans une page et /ou un compteur d'octets

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2014
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2014
    Messages : 50
    Points : 39
    Points
    39
    Par défaut
    non ça ne marche pas sur mon lien car
    la source de mes images ne provient pas de <img src="">
    mais d'un id appliqué sur une div
    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    #photo1 {
    	background: url(img/photo1-bg.jpg) center 0 no-repeat fixed;
    }
    j'ai essayé loadie.js mais ça ne marche pas ! car javascript appelle la class de la div img pour comptabiliser si elle est chargée ou non.

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2014
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2014
    Messages : 50
    Points : 39
    Points
    39
    Par défaut
    dans ton lien, http://blog.site-web-creation.net/jquery-loader/ il parle de la possibilité de
    détecter les background-image, donc ça devrait fonctionner..., j'ai du mal inséré le code
    car quand je vide mon cache la barre atteint les 100% avant d'avoir chargé les images !

  5. #5
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 873
    Points : 3 717
    Points
    3 717
    Par défaut
    Ce n'ai pas moi qui ai donné ce lien dans le fil que je t'ai indiqué et je ne l'ai pas testé, je ne connais pas Jquery...... Mais si j'ai bien compris il cherche toutes les images dans le CSS (background, background-image...), il prend leur adresse et "fabrique" pour chacune d'elles un élément <img> avec src...

    Après je suppose qu'on peut appliquer le principe (utiliser onload sur tous les élément <img>) dont on a parlé dans l'autre fil.

    Mais je me demande si, du coup, les images ne seront pas chargés deux fois ?
    Et aussi à quel moment on est censé faire ça ? Puisque qu'il faut bien avoir accès au CSS, et cela suppose que le chargement commence avant !

    Du coup je me demande si cela affiche vraiment la progression ou bien si ça te dit juste à la fin le pourcentage des images chargées.

  6. #6
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 451
    Points : 4 600
    Points
    4 600
    Par défaut
    salut,

    une idee (si ce que tu as teste ne te conviens pas) :
    utiliser ton script de base et charger toutes tes images dans un div en display:none;
    ainsi tu peux controler le chargment de test images comme tu le faisais deja. et quand elles sont chargee, tu les place en background-image
    (on peut imaginer : <img src="http://placekitten.com/300/300" bgi="#tonDiv" />)
    et utiliser l'attribut bgi pour placer l'image en background du bon div
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  7. #7
    Membre expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 873
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 873
    Points : 3 717
    Points
    3 717
    Par défaut
    Je ne connaissais pas "bgi"... Mais si ce n'est pas ta page et qu'il y a des "background-image" dans un fichier css, est-ce que ça marche ?

    Parce que dans le lien apparemment, si j'ai bien compris, il cherche toutes les images dans le CSS (background, background-image...), il prend leur adresse et "fabrique" pour chacune d'elles un élément <img> avec src...

    Du coup cela fonctionnerait pour n'importe quelle page ? Mais dans ce cas est-ce que les images ne seront pas chargés deux fois ?

  8. #8
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 451
    Points : 4 600
    Points
    4 600
    Par défaut
    "bgi" etait un exemple (pour Back Ground Image) tu peux l'apeller "toto" si tu veux
    mais juste ajouter un attribut pour savoir dans quel div placer l'image telechargee (en tant que background-image)
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2014
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2014
    Messages : 50
    Points : 39
    Points
    39
    Par défaut
    merci Doksuri pour ses précisions, du coup j'ai mis toutes les images dans une div en display none, et j'ai rajouté la class loaded image, comme dans l'exemple http://www.jqueryscript.net/demo/jQu...gin-Loadie-js/
    la barre de progression semble fonctionner correctement quand le cache est vide avec FF, mais si je réactualise la page la barre ne fini pas entièrement sa course http://thibautgraph.fr/test alors que toutes les images sont chargées !

  10. #10
    Expert confirmé
    Avatar de Doksuri
    Profil pro
    Développeur Web
    Inscrit en
    Juin 2006
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 451
    Points : 4 600
    Points
    4 600
    Par défaut
    ha ! moi j'ai le comportement inverse (sous chrome)

    1er chargement : la barre reste a ~90%, et apres, elle n'a meme pas le temps d'apparaitre (cache navigateur)

    peut-etre que dans ton nombre d'images (ou images totales) t'as du mettre (ou oublier) 1
    La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins.

    Venez discuter sur le Chat de Développez !

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    Webmaster
    Inscrit en
    Avril 2014
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Avril 2014
    Messages : 50
    Points : 39
    Points
    39
    Par défaut
    En tout j'ai 25 images, qui sont toutes déclarées avec la class loaded-image,
    le reste sont des images de petite taille qui n'ont pas besoin d'être préchargée.
    Doksuri as-tu toujours le bug sous Chrome ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 16/10/2014, 18h37
  2. Progress bar pour le chargement d'une datagrid
    Par johnaliashead dans le forum Silverlight
    Réponses: 6
    Dernier message: 28/04/2010, 12h43
  3. Progress Bar pour une initialisation de table
    Par souminet dans le forum Débuter
    Réponses: 4
    Dernier message: 01/12/2008, 10h58
  4. [FLASH 8 PRO] progress bar pour une fonction php
    Par jc_cornic dans le forum Flash
    Réponses: 6
    Dernier message: 08/11/2006, 20h55
  5. marche a suivre pour la creation d'un progress bar
    Par azde7015 dans le forum Access
    Réponses: 1
    Dernier message: 19/02/2006, 11h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo