20
FEV

Mootools Carousel - Un plugin pour faire défiler vos photos

Publié le 20/02/09 à 09h30 par DJo

Mootools Carousel est un plugin Mootools vous permettant de présenter de manière efficace et design des images pour vos applications web.

Mootools Carousel

 

Comment ça marche ?

Le système est assez simple. Dans un premier temps, vous créez une liste HTML avec les images à faire défiler:

<div id="wrap">

	<ul id="carousel">
		<li><img src="/billet/add/id/image1.jpg" alt="Image 1" /></li>
		<li><img src="/billet/add/id/image2.jpg" alt="Image 2" /></li>

		<li><img src="/billet/add/id/image3.jpg" alt="Image 3" /></li>
		<li><img src="/billet/add/id/image4.jpg" alt="Image 4" /></li>

	</ul>
</div>

Ensuite, avec un peu de CSS, on transforme la liste pour n'afficher qu'une seule image:

#wrap {
	height:250px;
	width:450px;
	display:block;
	overflow:hidden;
	position:relative;
}
#carousel {
	width:10000px;
	margin:0;
	padding:0;
}
#carousel li {
	height:250px;
	width:450px;
	margin:0;
	padding:0;
	float:left;
	display:inline;
}

Et enfin, le coeur du système, on anime le tout avec du Javascript utilisant la librairie mootools:

window.addEvent('domready', function() { 

	// Let's define some variables first
	var wrapper = $('wrap'); // The outer wrapper
	var carousel = $('carousel'); // The inner wrapper
	var items = $$('#carousel li'); // The different elements, this is an array
	var item_width = 450; // The full width of a single item (incl. borders, padding, etc ... if there is any)
	var max_margin = items.length * item_width - item_width;
	
	// Set up the animation
	var animation = new Fx.Tween(carousel, {duration: 500});
	
	// The function to browse forward
	function next_item(pos){
		if(pos == -max_margin){
			animation.start('left', 0);
		} else { 
			var newposition = pos - item_width;
			animation.start('left', newposition);
		}
	}
	
	// The function to browse backward
	function previous_item(pos){
		if(pos == 0){
			animation.start('left', -max_margin);
		} else { 
			var newposition = pos + item_width;
			animation.start('left', newposition);
		}
	}
	
	// Set up the 'next' and 'previous' buttons
	$('next').addEvent('click', function(){
		var position = parseInt(carousel.getStyle('left'));
		next_item(position);
	});
	
	$('previous').addEvent('click', function(){
		var position = parseInt(carousel.getStyle('left'));
		previous_item(position);
	});
	
}); 

 

Pour mieux comprendre le système, allez donc faire un tour sur le site officiel et la démo du carousel Mootools.

Baraguiné par le 20/02/09 à 14h23
Hello !
Là je dis chapeau : billet posté ce matin à 9h et lorsque j'ai cherché DEFILE PHOTS EN MOOTOOLS sur Google, tu arrive premier :)
En plus, ton billet présente justement se que je recherche.
Juste une question, si je peux abuser... :)
Est-il possible de faire en sorte qu'en même temps que s'affiche une nouvelle image, un texte associé à cette image s'affiche ?
Merci pour la réponse.
Claude
Baraguiné par DJo le 20/02/09 à 15h18
DJo sur La Ferme du Web
Ben tout est possible avec Mootools :P
Faut juste que tu le programme hahaha.

Par exemple tu mets le descriptif dans un tag name="" de l'image et quand c'est au tour de telle image, tu affiche le contenu de name où tu le souhaite.
Baraguiné par le 20/02/09 à 21h54
Ok, je vais tenter. Je me lance demain :-)
Baraguiné par le 19/03/09 à 11h41
Ouf ! J'y suis !
Finalement j'ai utilisé JQuery pour faire mon carousel :
http://itsystem.free.fr/_travaux/slideshow-jquery/
C'est joli aussi ;)
Baraguiné par le 08/04/09 à 17h30
Hello, tout d'abord merci pour cette source très belle!
Toutefois, je n'ai pas réussi à l'intégrée dans mon site qui ne doit pas comporter de flash
Je dois notifier que ce dernier était déjà rlié à une biblio jquery pour faire un lightbox
et il possible que cette dernière crée un conflit avec celle de Mootools?
Car nous sommes bien d'accord, il faut bien être avant toute choses muni de la bibliothèque js de Mootools?

Ce qui me parai bloquer, c'est le }); à la fin du fichier javascript...
Je suis novice dans le dommaine HTML/CSS/JS/PHP car je viens de m'y mettre excusez moi donc de mes éventuelles bêtises... Merci d'avances pour toutes les réponse!
Baraguiné par le 08/04/09 à 21h26
Je viens de me rendre compte que je n'avais pas cité mon problème...
En fait, j'ai une erreur qui me dit que la fonction $ n'est pas définie.
Si j'ai bien tout suivis, cette fonction remplace le fameux getElementbyID et que cette fonction éait présente dans le fichier de la biblio mootools. J'ai vérrifier que ce fichier est bien relié à ma page d'index en HTML et je ne trouve pas de solution sur le net... J'ai suivis à la lettre le tuto du site officiel et j'ai toujours la même erreur. Quelqu'un aurrai t'il une idée d'où cela pourrai bien venir?
Baraguiné par DJo le 08/04/09 à 21h43
DJo sur La Ferme du Web
Oui effectivement il faut que tu charge la librairie mootools en amont, ce qui risque de créer des conflits entre jQuery et Mootools.
Tu as la possibilité de mettre jQuery en mode compatibilité (Fait une recherche sur La Ferme en tapant jQuery).
Sinon, tu peux plutôt t'orienter sur un carousel ou slideshow en jQuery plus simplement.
Baraguiné par le 08/04/09 à 22h49
Ok Merci, j'ai essayé de refaire le carousel sur une nouvelle page indépendante de mon site mais j'ai le même problème... Je vais suivre ton conseil et essayé d'une autre façon. Dommage car celui-ci me paraissait très bien réussi. Je vous tiens au courant si jamais je trouve la solution au problème. Encore merci pour ta reponse

Ajouter un Commentaire

Pour poster un commentaire, vous devez être identifié. Vous pouvez choisir parmi ces trois méthodes d'identification:

Compte la Ferme du Web

Identifiez-vous
Inscrivez-vous

Compte Facebook

Compte Twitter

Connexion avec votre compte twitter
Rechercher sur la Ferme du web