CSS Background "aléatoire"

alexislevrai Messages postés 603 Statut Membre -  
valdoucalours Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour a tous & à toutes,

après avoir passé plus de la moitié de la journée a remuer le net pour trouver comment avoir une image en aléatoire, je me retourne vers vous pour votre aide:

Donc voilà j'ai une <div> avec un background désigné dans ma CSS, et je voudrais que cette image soit aléatoires.

#contenu {
    background-image:url(/wp-content/themes/madouce/media/contenu.png);
    background-repeat: no-repeat;
    background-attachment:center;
    position: absolute;
    width:1147px;
    height:734px;
    left: 50%;
    top:-1px;
    margin-left: -574px;
}


Quelqu'un aurait une idée ?
Configuration: Mac OS X
Safari 528.16

23 réponses

  • 1
  • 2
  1. valdoucalours Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   9
     
    Pour mettre un background image aléatoire je te conseil plutot d'utiliser javascript que php car c'est éxécuté du cotés client et c'est toujours ça à faire en moins pour ton serveur.
    2
  2. Smoking bird Messages postés 911 Statut Membre 58
     
    salut toi, la forme?^^

    utilise php!

    tu peux mettre tes images dans un dossier, demander à php de les récupérer dans un tableau et de sélectionner une valeur aléatoire dans ce tableau pour afficher l'image, bien entendu ce code devra générer une réponse dans un document php, donc ta règle css ne sera pas dans un fichier css^^
    0
  3. Smoking bird Messages postés 911 Statut Membre 58
     
    ça va : o)

    ça ressemble à ceci en effet^^, combien as tu d'images de fond pour ta sélec?
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. alexislevrai Messages postés 603 Statut Membre 51
     
    Pour le moment 3, mais j'en aurais tout au plus 5/6.
    0
  6. Smoking bird Messages postés 911 Statut Membre 58
     
    okay, voyons simple, tu t'y connais un peu en php?

    si oui, on passe direct à la suite, sinon, j'te refais les fondamentaux rapides^^

    <DTD>
    <html>
    <head>
    <style type='text/css'>
    #contenu {
    background-image:url('
    <?php
    $bckImg=array('image1.jpg','image2.jpg','image3.jpg','image4.jpg','image5.jpg','image6.jpg');
    echo array_rand($bckImg);
    ?>
    ');
    }
    </style>
    </head>
    <body>
    
    </body>
    </html>


    tente ça, ça devrait fonctionner^^, si non on peaufine (je l'ai pas testé^^)
    0
  7. alexislevrai Messages postés 603 Statut Membre 51
     
    Je pense comprendre; mais proposé si gentiment, je veux bien les fondamentaux rapidos :D
    0
  8. Smoking bird Messages postés 911 Statut Membre 58
     
    ptdr j'suis vénère, deezer vient de me planter opera -_-

    bref, ce sera une version un peu plus expéditive du coup :s

    Tous les docs concernés par ce code, ceux qui ont besoin d'une sélection aléatoire de background donc, doivent avoir l'extension .php (au lieu de html par exemple, je sais pas sur quoi tu travailles^^)

    Un code php est interprété s'il se retrouve entre <?php et ?>, sinon il ne le sera pas. On peut mettre autre chose que du php dans ces balises d'ouverture et de fermeture, mais ça doit se plier aux règles du langage php
    Exemple valide:
    <?php
    echo "<img src='tonimage.png'/>";
    ?>
    exemple invalide:
    <?php
    <img src='tonimage.png'/>
    ?>
    Dans les deux exemples on a du html, mais seul le premier est valide car c'est du html interprété par le php et renvoyé comme il faut^^

    Donc, que fait le code que je t'ai écris?
    Il sélectionne un champ aléatoire dans un tableau, un tableau qui contient le nom des images que tu utiliseras en background.
    Ce code doit être placé dans la balise head, entre les balises <style type='text/css'> et </style>, histoire d'indiquer qu'on met du css (même s'il y a du php dedans, ce n'est pas contradictoire, mais c'est une autre histoire : o))

    Concrètement:
    on créé un tableau d'images ( array('image.jpg',...) ) qu'on place dans la variable $bckImg, qui nous permettra de se référer à ce tableau et de bosser dessus, et une fois qu'on a accès facilement à notre tableau, on récupère la valeur aléatoire avec la fonction array_rand($bckImg) (elle contient en argument le tableau qu'on a créé) et on l'affiche en faisant précéder cette fonction de echo

    Besoin de plus amples explications? : o)
    0
  9. alexislevrai Messages postés 603 Statut Membre 51
     
    Tes explications sont très claires ;)

    Seulement ... ça ne veux pas ... j'ai ajouter ceci.
    <style type='text/css'>
    #contenu {
    background-image:url('
    <?php
    $bckImg=array('http://www.ma-douce.fr/wp-content/themes/madouce/background/image_1.png','http://www.ma-douce.fr/wp-content/themes/madouce/background/image_2.png','http://www.ma-douce.fr/wp-content/themes/madouce/background/image_3.png','http://www.ma-douce.fr/wp-content/themes/madouce/background/image_4.png','http://www.ma-douce.fr/wp-content/themes/madouce/background/image_5.png','image6.jpg');
    echo array_rand($bckImg);
    ?>
    ');
    position: absolute;
    width:1147px;
    height:734px;
    left: 50%;
    top:-1px;
    margin-left: -574px;
    }
    </style>
    0
  10. Smoking bird Messages postés 911 Statut Membre 58
     
    tu t'es planté là dessus : (en gras)
    <style type='text/css'>
    #contenu {
    background-image:url('
    <?php
    $bckImg=array('http://www.ma-douce.fr/wp-content/themes/madouce/background/image_1.png','http://www.ma-douce.fr/wp-content/themes/madouce/background/image_2.png','http://www.ma-douce.fr/wp-content/themes/madouce/background/image_3.png','http://www.ma-douce.fr/wp-content/themes/madouce/background/image_4.png','http://www.ma-douce.fr/wp-content/themes/madouce/background/image_5.png','image6.jpg');
    echo array_rand($bckImg);
    ?>
    position: absolute;
    width:1147px;
    height:734px;
    left: 50%;
    top:-1px;
    margin-left: -574px;
    ');
    }
    </style>


    remplace par:

    <style type='text/css'>
    #contenu {
    background-image:url('
    <?php
    $bckImg=array('http://www.ma-douce.fr/wp-content/themes/madouce/background/image_1.png','http://www.ma-douce.fr/wp-content/themes/madouce/background/image_2.png','http://www.ma-douce.fr/wp-content/themes/madouce/background/image_3.png','http://www.ma-douce.fr/wp-content/themes/madouce/background/image_4.png','http://www.ma-douce.fr/wp-content/themes/madouce/background/image_5.png','image6.jpg');
    echo array_rand($bckImg);
    ?>');
    position: absolute;
    width:1147px;
    height:734px;
    left: 50%;
    top:-1px;
    margin-left: -574px;
    }
    </style>
    0
  11. Smoking bird Messages postés 911 Statut Membre 58
     
    okay je vois, remplace:

    echo array_rand($bckImg);
    ?>

    par

    $img=array_rand($bckImg);
    echo $img[0];
    ?>

    et dis moi ce que ça fait^^
    0
  12. Smoking bird Messages postés 911 Statut Membre 58
     
    j'mé planté^^

    si ça fonctionne pas, fais:

    $img=array_rand($bckImg);
    echo $bckImg[$img[0]];
    ?>
    0
  13. alexislevrai Messages postés 603 Statut Membre 51
     
    Ca fait .... PAREIL ! =D
    0
  14. alexislevrai Messages postés 603 Statut Membre 51
     
    GRRRR, toujours pareil !

    <style type='text/css'>
    #contenu {
    background-image:url('
    <?php
    $bckImg=array('http://www.ma-douce.fr/wp-content/themes/madouce/background/image_1.png','http://www.ma-douce.fr/wp-content/themes/madouce/background/image_2.png','http://www.ma-douce.fr/wp-content/themes/madouce/background/image_3.png','http://www.ma-douce.fr/wp-content/themes/madouce/background/image_4.png','http://www.ma-douce.fr/wp-content/themes/madouce/background/image_5.png','image6.jpg');
    $img=array_rand($bckImg); 
    echo $bckImg[$img[0]]; 
    ?>');
    position: absolute;
    width:1147px;
    height:734px;
    left: 50%;
    top:-1px;
    margin-left: -574px;
    }
    </style>
    0
  15. Smoking bird Messages postés 911 Statut Membre 58
     
    c'est une technique nouvelle par rapport à celle que j'utilise d'habitude, c'est pour ça que le résultat est pas immédiat ;) j'expérimente :p

    remplace:
    $img=array_rand($bckImg);
    echo $bckImg[$img[0]];
    ?>');

    par:

    echo $bckImg[array_rand($bckImg)];
    ?>');
    0
  16. alexislevrai Messages postés 603 Statut Membre 51
     
    Ne te cherche pas des excuses ;)

    Sinon ... le problème persiste =(
    0
  17. Smoking bird Messages postés 911 Statut Membre 58
     
    ptdr j'te zut mon pote :D

    #contenu {
    background-image:url('
    <?php

    par

    #contenu {
    background-image:url('<?php

    la sélection d'images se fait mais le saut à la ligne bloquait le délire^^
    0
  18. alexislevrai Messages postés 603 Statut Membre 51
     
    Tu gère du Biftek mec !

    Merci beaucoup ;)

    Sinon, comme d'hab' si tu as besoin de quoi que ce soit pour de la créea visuelle, n'hésite pas ;)
    0
  19. Smoking bird Messages postés 911 Statut Membre 58
     
    ptdr :D j't'en prie^^

    j'ai pas oublié pour la créa visuelle ;) j'te tiendrais au courant si besoin est^^
    Et si t'as d'autres soucis, fais moi venir sur tes posts^^
    0
  • 1
  • 2