[JS] changer aléatoirement une image affichée en css
[JS] changer aléatoirement une image affichée en css
Bonjour,
j'ai une image de fond qui est affichée en css et je voudrais qu'elle change aléatoirement ...
J'ai trouvé quelques méthodes, mais je ne les trouve pas forcément optimisée ou utilisant du php quand il serait possible de le faire en Java Script ...
Que pouvez vous me conseiller ???
Merci beaucoup
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2
j'ai une image de fond qui est affichée en css et je voudrais qu'elle change aléatoirement ...
J'ai trouvé quelques méthodes, mais je ne les trouve pas forcément optimisée ou utilisant du php quand il serait possible de le faire en Java Script ...
Que pouvez vous me conseiller ???
Merci beaucoup
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2
Firefox,
Time for the hunted to be the hunter.
Config : WinXp, FF 1.0, TB 1.0, SB 0.2.
Time for the hunted to be the hunter.
Config : WinXp, FF 1.0, TB 1.0, SB 0.2.
Math.random() ? Retourne un nombre aléatoire compris dans l'intervalle [0, 1[
Tu n'as plus qu'à le multiplier par le nombre d'images disponibles puis appeler Math.floor pour avoir un entier
Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.1.1) Gecko/20061208 Firefox/2.0.0.1
Tu n'as plus qu'à le multiplier par le nombre d'images disponibles puis appeler Math.floor pour avoir un entier
Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.1.1) Gecko/20061208 Firefox/2.0.0.1
Le seul problème, c'est que mon image est affichée par une css !
Je ne peux pas faire directement un random dans ma css ... ou alors, je fais ma fonction js qui s'active au chargement de la page et qui charge une class css aléatoire. Mais il faut que je crée autant de class css qu'il n'y a d'image ... mais je trouve que mon code sera fortement alourdit.
Est-il possible via javascript de modifier l'url d'une image directement dans un fichier css ? Ou de lui indiquer un autre src par exemple en allant le chercher par un document.getElementById ?
merci
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2
Je ne peux pas faire directement un random dans ma css ... ou alors, je fais ma fonction js qui s'active au chargement de la page et qui charge une class css aléatoire. Mais il faut que je crée autant de class css qu'il n'y a d'image ... mais je trouve que mon code sera fortement alourdit.
Code : Tout sélectionner
.bck01 {
...
}
.bck02 {
...
}
....
merci
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2
Firefox,
Time for the hunted to be the hunter.
Config : WinXp, FF 1.0, TB 1.0, SB 0.2.
Time for the hunted to be the hunter.
Config : WinXp, FF 1.0, TB 1.0, SB 0.2.
Tu t'en fiches du fichier CSS, il a été chargé au début et après on l'oublie. Ce qui compte, c'est l'arbre DOM chargé. Et évidemment que tu peux changer l'image de fond d'un élémentGregK84 a écrit :Est-il possible via javascript de modifier l'url d'une image directement dans un fichier css ? Ou de lui indiquer un autre src !
Si c'est des classes, un document.getElementsByClassName, une boucle for, et à chaque itération tu change [element].style
Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.1.1) Gecko/20061208 Firefox/2.0.0.1
je vais essayer d'écrire un petit script ... on verra ce que cela donne si j'ai des soucis je viendrai encore ... poser des questions
en tout cas, un très grand merci pour tes réponses rapides
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2
en tout cas, un très grand merci pour tes réponses rapides
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2
Firefox,
Time for the hunted to be the hunter.
Config : WinXp, FF 1.0, TB 1.0, SB 0.2.
Time for the hunted to be the hunter.
Config : WinXp, FF 1.0, TB 1.0, SB 0.2.
voici mon script ! mais il doit savoir faire encore plus optimisé !
autant de fichier css que d'image !
et dans le head on affiche :
je suis preneur d'une solution qui prendrait juste 1 seul et unique fichier css et/ou d'un script qui changerait l'url du background dans mon css !
J'espere que vous avez +- compris
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2
Code : Tout sélectionner
function aleatoireImage() {
var nbrimg = 2 ;
var links;
numimage = Math.floor(Math.random() * (nbrimg - 1 + 1) + 1);
links = '<link rel="stylesheet" type="text/css" href="styles/style_layout_bandeau_0'+numimage+'.css" />';
return (links);
}
et dans le head on affiche :
Code : Tout sélectionner
<script type="text/javascript">
document.write(aleatoireImage());
</script>
J'espere que vous avez +- compris
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2
Firefox,
Time for the hunted to be the hunter.
Config : WinXp, FF 1.0, TB 1.0, SB 0.2.
Time for the hunted to be the hunter.
Config : WinXp, FF 1.0, TB 1.0, SB 0.2.
www.arbeaumont.be (tjr en développement ...)
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2
Firefox,
Time for the hunted to be the hunter.
Config : WinXp, FF 1.0, TB 1.0, SB 0.2.
Time for the hunted to be the hunter.
Config : WinXp, FF 1.0, TB 1.0, SB 0.2.
Code : Tout sélectionner
<div class="bandeau">
Si ce n'est pas le cas, mets un id à la place de la classe, puis tu pourras faire document.getElementById('bandeau').style='...'
Message envoyé avec : Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.8.1.1) Gecko/20061208 Firefox/2.0.0.1
PS : <div class="header"></div> ne définit pas un titre... l'image qui contient le titre, c'est du contenu, donc elle ne doit pas être dans la CSS
Bonjour Gregory,
Je viens d'aller voir ton site. Je le trouve sobre et efficace, j'aime bien.
Mais en regardant le code source de ta page d'accueil, je note que tu as mis le titre sous l'onglet sous forme de lien qui dirige... vers lui meme (au niveau du H1).
Y a t il une raison particuliere ? a priori, ca ne sert à rien, où du moins je ne vois pas.
En ce qui concerne l image de fond, il semble que tu aies 2 bandeaux identiques avec la couleur du texte qui change d'un bandeau à l'autre. Ai je raison ?
Il me semble également, que ces 2 bandeaux changent qu'après avoir clicker sur un lien :
Il est peut etre possible egalement de passer de l'un à l'autre , par un timer. Comme cela, les bandeaux alterneraient pendant que le visiteur lit le texte de la page, sans qu il ait à clicker sur un lien.
Je pense que c'est ce que disait calimo lorsqu'il parlait de "boucle for".
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2
Je viens d'aller voir ton site. Je le trouve sobre et efficace, j'aime bien.
Mais en regardant le code source de ta page d'accueil, je note que tu as mis le titre sous l'onglet sous forme de lien qui dirige... vers lui meme (au niveau du H1).
Code : Tout sélectionner
</div>
<h1><a href="index.htm"><span class="guillemet">‘‘</span> Athénée Royal de Beaumont <span class="guillemet">’’</span></a><span class="sousmenu"> » Accueil</span></h1>
<div id="col_content">
<h2 class="titre">Notre projet d'école : apprendre à devenir ...</h2>
En ce qui concerne l image de fond, il semble que tu aies 2 bandeaux identiques avec la couleur du texte qui change d'un bandeau à l'autre. Ai je raison ?
Il me semble également, que ces 2 bandeaux changent qu'après avoir clicker sur un lien :
Code : Tout sélectionner
<li><a onclick="aleatoireImage()" title="Lien vers la conférence extramadour" href="index.htm">
Je pense que c'est ce que disait calimo lorsqu'il parlait de "boucle for".
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2
alain.
Je prend bonne notecalimo a écrit :Tu comptes avoir plusieurs bandeaux sur la page ?Code : Tout sélectionner
<div class="bandeau">
Si ce n'est pas le cas, mets un id à la place de la classe, puis tu pourras faire document.getElementById('bandeau').style='...'
Merci pour le site !alain47 a écrit :Bonjour Gregory,
Je viens d'aller voir ton site. Je le trouve sobre et efficace, j'aime bien.
Mais en regardant le code source de ta page d'accueil, je note que tu as mis le titre sous l'onglet sous forme de lien qui dirige... vers lui meme (au niveau du H1).
Y a t il une raison particuliere ? a priori, ca ne sert à rien, où du moins je ne vois pas.Code : Tout sélectionner
</div> <h1><a href="index.htm"><span class="guillemet">‘‘</span> Athénée Royal de Beaumont <span class="guillemet">’’</span></a><span class="sousmenu"> » Accueil</span></h1> <div id="col_content"> <h2 class="titre">Notre projet d'école : apprendre à devenir ...</h2>
La raison est que mon H1 fait office d'historique pour déterminer la rubrique ou l'on se trouve ...
Normalement, je dois le changer et mettre seulement le titre en H1 et l'historique dans un P ou div ...
Tout a fait ! Normalement, je dois mettre d'autre image, ici c'était pour tester le fonctionnement de mon script très light ...alain47 a écrit :En ce qui concerne l image de fond, il semble que tu aies 2 bandeaux identiques avec la couleur du texte qui change d'un bandeau à l'autre. Ai je raison ?
Merci de me le faire remarqué ! c'est une erreur de ma part ! La fonction doit être appelée via onpreload="" sur le body !alain47 a écrit :Il me semble également, que ces 2 bandeaux changent qu'après avoir clicker sur un lien :Code : Tout sélectionner
<li><a onclick="aleatoireImage()" title="Lien vers la conférence extramadour" href="index.htm">
C'est effectivement une très bonne idée, je vais "essaye" de réaliser un script de ce type que je publierai ensuite ... mais j'ai très peux de connaissance en javascript !alain47 a écrit :Il est peut etre possible egalement de passer de l'un à l'autre , par un timer. Comme cela, les bandeaux alterneraient pendant que le visiteur lit le texte de la page, sans qu il ait à clicker sur un lien.
Je pense que c'est ce que disait calimo lorsqu'il parlait de "boucle for".
a bientôt
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2
Firefox,
Time for the hunted to be the hunter.
Config : WinXp, FF 1.0, TB 1.0, SB 0.2.
Time for the hunted to be the hunter.
Config : WinXp, FF 1.0, TB 1.0, SB 0.2.
Salut Greg,
J'ai consulté ma doc (oui je sais, elle date d'avant la guerre, comme me l'a rappelé HP ) et voila ce que je te propose :
Toutes les 3 secondes environ (il faut marquer 3000 parce que ca marche en millisecondes) , la minuterie ira dans la fonction indiquee (ici, 'timer' donc pour toi il faudra changer timer par 'image_aleatoire' par exemple).
Je l'ai essayé sur mon portable (Windows XP), et ca marche. Je l'ai essayé sur IE et FF 2.0 : ca marche comme tel sur les deux.
Si ca peut t'aider.
Une dernier chose : ce timer marche sur la page. Donc, dès que tu changes de page, ca s'arrête. Il te faudra donc copier la ligne <body ..> et la coller sur chaque page , et mettre le script que j'ai mis dans le <HEAD> dans un fichier javascript externe pour que chaque page puisse y avoir accès.
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2
J'ai consulté ma doc (oui je sais, elle date d'avant la guerre, comme me l'a rappelé HP ) et voila ce que je te propose :
Code : Tout sélectionner
<html>
<head>
<title>Essai</title>
<script>
function timer()
{ alert('Et voila');}
</script>
</head>
<body onLoad="setInterval(timer,3000)">
essai timer
</body>
</html>
Je l'ai essayé sur mon portable (Windows XP), et ca marche. Je l'ai essayé sur IE et FF 2.0 : ca marche comme tel sur les deux.
Si ca peut t'aider.
Une dernier chose : ce timer marche sur la page. Donc, dès que tu changes de page, ca s'arrête. Il te faudra donc copier la ligne <body ..> et la coller sur chaque page , et mettre le script que j'ai mis dans le <HEAD> dans un fichier javascript externe pour que chaque page puisse y avoir accès.
Message envoyé avec : Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2
alain.
Qui est en ligne ?
Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 3 invités