Blackground avec image aleatoire

sylrg Messages postés 3 Date d'inscription dimanche 8 avril 2012 Statut Membre Dernière intervention 10 avril 2012 - 10 avril 2012 à 17:05
cs_jperre Messages postés 268 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 19 janvier 2017 - 11 avril 2012 à 12:02
bonjour a tous
je souhaiterais avoir un blackground avec une image aleatoire aussi bien a l'ouverture de la page d'acceuil ou une reactualisation de la page
j'ai chercher un code javasript mais mes recherches sont rester vaines
estce que cela est possible
merci par avance pour votre aide

4 réponses

cs_jperre Messages postés 268 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 19 janvier 2017 2
10 avril 2012 à 22:42
C'est possible avec un petit script javascript. Je présente ici un exemple susceptible de présenter 11 images différentes de manière aléatoire.
Dans la section <head> de la page html, il faut insérer le script suivant :
<script type="text/javascript">
var arImg=new Array(11);//Crée un tableau d'adresses d'images de 11 éléments
arImg[0]="img1.jpg";
arImg[1]="img2.jpg";
arImg[2]="img3.jpg";
arImg[3]="img4.jpg";
arImg[4]="img5.jpg";
arImg[5]="img6.jpg";
arImg[6]="img7.jpg";
arImg[7]="img8.jpg";
arImg[8]="img9.jpg";
arImg[9]="img10.jpg";
arImg[10]="img11.jpg";

function setBackgroundImage() {
/*Math.random() renvoie un nombre à virgule flottante aléatoire entre 0 et 1 donc si on le multiplie par 10 cela fait un nombre entre 0 et 10
on utilise ensuite la méthode Math.floor() pour obtenir les nombres entiers immédiatement inférieurs */
var idImg=Math.floor(Math.random()*10);
document.body.style.backgroungImage=arImg[idImg];
}
</script>

Puis à l'intérieur de la balise d'ouverture il faut :


Cela doit marcher. Il faut 11 éléments au tableau, mais rien ne vous oblige à mettre 11 images,
plusieurs éléments peuvent partager la même image.
0
sylrg Messages postés 3 Date d'inscription dimanche 8 avril 2012 Statut Membre Dernière intervention 10 avril 2012
10 avril 2012 à 23:33
bonsoir
je viens de remettre le code dans ma page en modifiant de 11 a 7 le nombre de photos dispo mais malheureusement ma page reste blanche et ne 'affiche pas une des photos
ma page se trouve dans le dossier ,ou sont stockes egalement les photos
quelle erreur je fais?
voici le code comme je l'ai recolle pour effectuer un essai

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<script type="text/javascript">
var arImg=new Array(7);//Crée un tableau d'adresses d'images de 7 éléments
arImg[0]="1.jpg";
arImg[1]="2.jpg";
arImg[2]="3.jpg";
arImg[3]="4.jpg";
arImg[4]="5.jpg";
arImg[5]="6.jpg";
arImg[6]="7.jpg";


function setBackgroundImage() {
/*Math.random() renvoie un nombre à virgule flottante aléatoire entre 0 et 1 donc si on le multiplie par 10 cela fait un nombre entre 0 et 10
on utilise ensuite la méthode Math.floor() pour obtenir les nombres entiers immédiatement inférieurs */
var idImg=Math.floor(Math.random()*6);
document.body.style.backgroungImage=arImg[idImg];
}
</script>
</head>




</html>
pouvez vous encore m'aider
merci
0
sylrg Messages postés 3 Date d'inscription dimanche 8 avril 2012 Statut Membre Dernière intervention 10 avril 2012
10 avril 2012 à 23:38
je voudrais rajouter a mon message que
1.jpg,2.jpg,3.jpg sont les noms de ces photos
0
cs_jperre Messages postés 268 Date d'inscription lundi 9 janvier 2006 Statut Membre Dernière intervention 19 janvier 2017 2
11 avril 2012 à 12:02
J'ai commis une erreur en voulant aller trop vite :
Il y a :
function setBackgroundImage() {
/*Math.random() renvoie un nombre à virgule flottante aléatoire entre 0 et 1 donc si on le multiplie par 10 cela fait un nombre entre 0 et 10
on utilise ensuite la méthode Math.floor() pour obtenir les nombres entiers immédiatement inférieurs */
var idImg=Math.floor(Math.random()*10);
document.body.style.backgroungImage=arImg[idImg];
}

Il faut :
function setBackgroundImage() {
/*Math.random() renvoie un nombre à virgule flottante aléatoire entre 0 et 1 donc si on le multiplie par 10 cela fait un nombre entre 0 et 10
on utilise ensuite la méthode Math.floor() pour obtenir les nombres entiers immédiatement inférieurs */
var idImg=Math.floor(Math.random()*10);
document.body.style.backgroungImage="url("+arImg[idImg]+")";
}
0
Rejoignez-nous