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 :

Un stylesheet aléatoire


Sujet :

JavaScript

  1. #1
    Futur Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Un stylesheet aléatoire
    Bonjour,

    Je suis en ce moment en train de refondre le site de la promo SRC Chambéry et j'aimerai savoir s'il est possible de changer le aléatoirement la feuille de style lié aux pages du site.

    voila ce que j'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
           <link rel="stylesheet" type="text/css" href="<?php bloginfo('template_directory'); ?>/style.css" media="screen" title="default" />
    	<link rel="alternate stylesheet" type="text/css" href="<?php bloginfo('template_directory'); ?>/citron.css" media="screen" title="citron" />
    	<link rel="alternate stylesheet" type="text/css" href="<?php bloginfo('template_directory'); ?>/orange.css" media="screen" title="orange" />
    	<link rel="alternate stylesheet" type="text/css" href="<?php bloginfo('template_directory'); ?>/blue.css" media="screen" title="blue" />
    	<link rel="alternate stylesheet" type="text/css" href="<?php bloginfo('template_directory'); ?>/green.css"  media="screen" title="green" />	
    	<link rel="alternate stylesheet" type="text/css" href="<?php bloginfo('template_directory'); ?>/violet.css"  media="screen" title="violet" />
    et j'aimerais que

    puisse remplacer n'importe quel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rel="alternate stylesheet"
    afin de rendre aléatoire l'affichage du thème de site.

    Le site en question: SRC-Website.fr

  2. #2
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Bonjour et bienvenue dans les forums de Developpez.com!

    Il suffit de mettre les différents éléments dans un tableau et d'utiliser la fonction array_rand ou shuffle :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $tab=array('citron','orange','blue','green','violet');
    $rand=array_rand($tab)[0]; // [0] est peut-être facultatif, à tester...
    echo '<link rel="alternate stylesheet" type="text/css" href="'.bloginfo('template_directory').'/'.$rand.'.css" media="screen" title="'.$rand.'" />';
    unset($tab);
    unset($rand);

  3. #3
    Futur Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Merci beaucoup
    Je test et je te dit si tout se passe bien.

  4. #4
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Arf, c'est un code PHP que je t'ai donné, pas Javascript (j'ai confondu le forum).

  5. #5
    Futur Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Apparemment ce n'est pas très concluent
    J'ai mis ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
            $tab=array('citron','orange','blue','green','violet');
            $rand=array_rand($tab)[0]; 
            echo '<link rel="alternate stylesheet" type="text/css" href="'.bloginfo('template_directory').'/'.$rand.'.css" media="screen" title="'.$rand.'" />';
            unset($tab);
            unset($rand);
    ?>
    Et on me dit qu'une erreur provient de la ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	$rand=array_rand($tab)[0];
    J'ai essayé sans le 0 et rien n'y fait...

    ps: le langage m'importe peu je souhaite juste que ça fonctionne

  6. #6
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    En Javascript, je peux te proposer ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      <script type="text/javascript">
        var tab=document.getElementsByTagName('link');
        var cnt=(tab.length-1);
        var rand=Math.floor(Math.random()*cnt);
        for(i=0;i<cnt;i++) tab[(i+1)].disabled=(i!=rand);
      </script>

  7. #7
    Futur Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Alors autant en php je voyais un peu la logique, autant là j'ai du mal à vois comment procéder.

    Je doit disposer ma page de cette façon?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
      <script type="text/javascript">
        var tab=document.getElementsByTagName('link');
        var cnt=(tab.length-1);
        var rand=Math.floor(Math.random()*cnt);
        for(i=0;i<cnt;i++) tab[(i+1)].disabled=(i!=rand);
      </script>
     
    <link rel="stylesheet" type="text/css" href="<?php bloginfo('template_directory'); ?>/style.css" media="screen" title="default" />
    	<link rel="alternate stylesheet" type="text/css" href="<?php bloginfo('template_directory'); ?>/citron.css" media="screen" title="citron" />
    	<link rel="alternate stylesheet" type="text/css" href="<?php bloginfo('template_directory'); ?>/orange.css" media="screen" title="orange" />
    	<link rel="alternate stylesheet" type="text/css" href="<?php bloginfo('template_directory'); ?>/blue.css" media="screen" title="blue" />
    	<link rel="alternate stylesheet" type="text/css" href="<?php bloginfo('template_directory'); ?>/green.css"  media="screen" title="green" />	
    	<link rel="alternate stylesheet" type="text/css" href="<?php bloginfo('template_directory'); ?>/violet.css"  media="screen" title="violet" />

  8. #8
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    J'ai fais une erreur dans le code PHP, corrige comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	$rand=$tab[array_rand($tab)];
    Citation Envoyé par finaldofus Voir le message
    Je doit disposer ma page de cette façon?
    non, comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <link rel="stylesheet" type="text/css" href="<?php bloginfo('template_directory'); ?>/style.css" media="screen" title="default" />
    	<link rel="alternate stylesheet" type="text/css" href="<?php bloginfo('template_directory'); ?>/citron.css" media="screen" title="citron" />
    	<link rel="alternate stylesheet" type="text/css" href="<?php bloginfo('template_directory'); ?>/orange.css" media="screen" title="orange" />
    	<link rel="alternate stylesheet" type="text/css" href="<?php bloginfo('template_directory'); ?>/blue.css" media="screen" title="blue" />
    	<link rel="alternate stylesheet" type="text/css" href="<?php bloginfo('template_directory'); ?>/green.css"  media="screen" title="green" />	
    	<link rel="alternate stylesheet" type="text/css" href="<?php bloginfo('template_directory'); ?>/violet.css"  media="screen" title="violet" /> 
     
      <script type="text/javascript">
        var tab=document.getElementsByTagName('link');
        var cnt=(tab.length-1);
        var rand=Math.floor(Math.random()*cnt);
        for(i=0;i<cnt;i++) tab[(i+1)].disabled=(i!=rand);
      </script>

  9. #9
    Futur Membre du Club
    Inscrit en
    Septembre 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Ça ne marche pas mais ça viens peut-être de moi...
    Si tu as le temps (je t'en ai déjà pris pas mal), tu peu modifier le fichier en question:
    http://src-website.fr/header.zip

  10. #10
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Finalement, je te conseille plutôt l'utilisation du PHP (code corrigé)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $tab=array('citron','orange','blue','green','violet');
    $rand=$tab[array_rand($tab)];
    echo '<link rel="alternate stylesheet" type="text/css" href="'.bloginfo('template_directory').'/'.$rand.'.css" media="screen" title="'.$rand.'" />';
    unset($tab);
    unset($rand);

Discussions similaires

  1. Nombre aléatoire en SQL
    Par sqlnet dans le forum Langage SQL
    Réponses: 8
    Dernier message: 19/08/2003, 12h38
  2. clé primaire aléatoire
    Par peuh dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 23/06/2003, 20h51
  3. Eviter deux nombres identiques dans un tirage aléatoire
    Par moon tiger dans le forum Pascal
    Réponses: 5
    Dernier message: 25/11/2002, 09h57
  4. Générer un nombre aléatoire entre 0 et 1 (INCLUS !!!)
    Par haypo dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 22/08/2002, 16h30
  5. Récupérer 10 nb différents avec un calcul aléatoire
    Par BXDSPORT dans le forum Langage
    Réponses: 3
    Dernier message: 04/08/2002, 02h35

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