Star-Killer

Aller au contenu | Aller au menu | Aller à la recherche

jeudi 30 octobre 2008

Affichage aléatoire d'images en Javascript

On continue dans la lignée des trucs et bidules en JavaScript. Ce langage permet simplement d'ajouter de nouvelles fonctionnalités un peu kikoolol à mon blog.

Aujourd'hui nous allons afficher de manière aléatoire une image. Rien d'interactif encore, à chaque refresh l'image sera différente. JavaScript étant un langage exécuté du côté client, il lui est impossible de parcourir une arborescence de fichier, c'est pourquoi le code présenté ci-dessous est un poil moins élégant que le précedent.

On déclare dans un premier temps les variables que nous allons utiliser.

Cette variable désigne le nombre d'images que vous avez mis dans le dossier où se trouve vos images.

var totalvidz = 5;

var i = 0;

On créait une image. La déclaration de cet objet est surement erroné et le new Image() est probablement inutile. Cependant il n'a embêté personne donc je le laisse. Ce sera l'image que l'on affichera

var image = new Image(120,300);

On appelle une fonction par encore écrite !

ChangeImage();

On s'attaque enfin au cœur du sujet, l'écriture de ChangeImage().

function ChangeImage()

{

On déclare le tableau qui va stocker toutes les adresses des images.

var source = new Array();

On charge. Vous remarquerez que nos images doivent porter comme nom un numéro. Du genre "1.png". Les numéros doivent se suivre. C'est la seule façon un peu élégante que j'ai trouvé pour faire abstraction du fait que nous n'avons pas accès au répertoire.

for(k=1; k< totalvidz+1;k++)

{

Vous changerez l'url pour adapter le script à vos besoins ainsi que l'extension.

source.push("http://nobunaga.duc.free.fr/starkiller/pub/" + k + ".png");

}

Je ne vais pas réécrire cette partie que l'on retrouve dans le tutoriel précédent.

i = Math.floor((source.length)*Math.random();

image.src = source[i];

On affiche l'image.

document.write('<img src="'+image.src+'" border="0">');

}

dimanche 26 octobre 2008

Affichage aléatoire de phrase en JavaScript

Vous l'avez sans doute tous remarqué, j'ai rajouté en haut à gauche du blog un petit encadré ou à chaque refresh de la page apparaît une phrase. J'ai réalisé sa pour m'amuser et c'est en JavaScript.

Ce langage est totalement objet, vous pouvez écrire vos classes, vos fonctions, gérer des événements et ne pas écrire/lire dans des fichiers. Sa principale puissance vient du fait que tous les navigateurs internet ont un interpréteur pour ce langage. Son gros défaut vient également de son utilisation : toute la mise en page est laissé au soin du HTML et du CSS et je n'aime pas mais pas du tout manipuler les deux totos précédemment cités.

Rentrons dans le vif du sujet. Comme vous pouvez le voir, à chaque refresh de la page une nouvelle phrase apparaît (ou pas si vous n'avez pas de bol). Cela vient du fait qu'à chaque fois que vous chargez la page, vous chargez également le petit Javascript qu'elle contient qui va se charger d'afficher dans l'encadré une des phrases de son dictionnaire.

Le principe est tout bête et tient en 3 lignes : je déclare les phrases dans un tableau, je tir un nombre au hasard qui va correspondre à l'index d'une des cases dudit tableau et j'affiche la bête. On aura vu plus compliqué et difficile à implanter.

On déclare un tableau. Vous remarquerez qu'en JavaScript on ne renseigne pas le type de la variable. Cependant les données sont bien typés donc attention à ne pas ce mélanger.

var Citation = new Array();

On met ensuite une phrase à la fin du tableau. Ici se sera le premier élément (donc à l'index 0). Si je rajoutai encore un élément grâce à la méthode push, je serai alors à l'index 1, etc.

Citation.push("Tout ce que je voulais, courir avec un famas a la main dans un champ de fleur.");

Je génère ensuite un nombre aléatoire pour choisir une phrase. random() me génère un nombre compris entre 0 et 1. Je multiplie ce nombre par le nombre d'éléments contenus dans mon tableau puis j'enlève avec floor la partie non entière. J'ai ainsi récupéré un nombre utilisable comme index pour mon tableau de citations.

var i = Math.floor (( Citation.length ) * Math.random() );

Il ne reste plus qu'a l'afficher. document représente la page web en cours.

document.write("<p><b>" + Citation[i] +"</b></p>");

Facile non ?

On peut imaginer plein d'autres choses un peu kikoolol comme changer la phrase toute les 30 secondes ou donner une couleur un peu plus sexy à l'ensemble. Comme vous pouvez le voir, la mise en forme se fait en HTML, rien de très compliqué donc.