28172 sujets

CSS et mise en forme, CSS3

Bonjour à tous,

Voilà, j'ai suivis ce tuto pour créer un slideshow à défilement automatique :
http://www.alsacreations.com/tuto/lire/1059-ID-slideshow-css3-animation-keyframes-automatique.html

Cela fonctionne, je n'ai aucun soucis, néanmoins je voudrais si possible mettre un pagination (en petit point) comme sur ce tuto pour pouvoir en plus du défilement, se déplacer de façon manuelle :
http://www.creativejuiz.fr/blog/tutoriels/css3-creer-slideshow-automatique-controlable-transition

Mais je n'y arrive pas, pouvez vous m'aider svp Smiley bawling

Seb09
Modifié par Seb09 (27 Jan 2013 - 11:50)
Bonjour,

Vous voulez parler des boutons de commande dots_comands.

Où est le problème? Le tuto est très bien expliqué.

Sinon vous avez la solution Jquery, plus simple si vous commencez en Css3.


Note: votre 1er lien n'est pas bon. Smiley smile
Bonjour,

Merci infiniment pour votre réponse.
Merci, j'ai édité Smiley smile

Oui, en effet le tuto est très bien expliqué mais je n'arrive pas à l'adapter au codes fournis dans mon premier lien. Pouvez vous m'aider ?

Merci encore Smiley cligne
Suggestion:
Prenez le code du 2éme slideshow et décomposez-le jusqu'à conserver les éléments que vous désirerez.

Ça prend du temps mais on apprend beaucoup.
C'est ce que j'ai essayé de faire mais comme les images ne sont pas de même dimension et que le code est beaucoup plus long, cela ne fonctionne pas.
J'ai aussi tenté de mettre un bouton avant arrière sur le slideshow automatique du premier lien (le tuto des boutons avant arrière est juste à la suite dans le premier lien) mais cela ne fonctionne pas.

Voici le code que j'ai mis :

<style type="text/css">
@-webkit-keyframes AutoSlide {
	0%, 15%, 100% {
		left: 0px; /* première image et dernière*/
	}
	35%, 50% {
		left: -150px; /*2ème image*/
	}
	70%, 85% {
		left: -300px; /*3ème image*/
	}
}
@-moz-keyframes AutoSlide {
	0%, 15%, 100% {
		left: 0px; /* première image et dernière*/
	}
	35%, 50% {
		left: -150px; /*2ème image*/
	}
	70%, 85% {
		left: -300px; /*3ème image*/
	}
}
@keyframes AutoSlide {
	0%, 15%, 100% {
		left: 0px; /* première image et dernière*/
	}
	35%, 50% {
		left: -150px; /*2ème image*/
	}
	70%, 85% {
		left: -300px; /*3ème image*/
	}
}

#slideshow {
	position: relative;    /*le parent positionné*/
	width: 150px;          /*limite en largeur (1 élément du slideshow)*/
	height: 150px;         /*limite en hauteur*/
	margin:  20px auto;
	overflow: hidden;      /*on cache ce qui déborde*/
}
#sContent li {
	display: inline;      /*on aligne les éléments du slideshow*/
}
#sContent {
	position: absolute;   /*on sort l'élément du flux*/
	top: 0;               /*on le positionne précisément dans ...*/
	left: 0;              /*l'angle haut gauche de son parent positionné*/
	width: 450px;
	margin: 0;            
	padding: 0;
	transition: left 1s;
	
	/*CSS3 webkit keyframes animation*/
	-webkit-animation-name: AutoSlide;
	-webkit-animation-duration: 10s;
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-timing-function: ease-in-out;
	
	/*CSS3 moz keyframes animation*/
	-moz-animation-name: AutoSlide;
	-moz-animation-duration: 10s;
	-moz-animation-iteration-count: infinite;
	-moz-animation-timing-function: ease-in-out;
	
	/*CSS3 W3C keyframes animation*/
	animation-name: AutoSlide;
	animation-duration: 10s;
	animation-iteration-count: infinite;
	animation-timing-function: ease-in-out;
}
#slideshow:target #sContent {
        /* en ciblant #slideshow on décale #sContent */
    left: -150px;         /* ou - 100% */
}
</style>
<div id="slideshow">
    <ul id="sContent"><!--
        --><li><img src="http://www.alsacreations.com/xmedia/tuto/exemples/slideshow_css3/images/bleu.png" alt="Image bleue" /></li><!--
        --><li><img src="http://www.alsacreations.com/xmedia/tuto/exemples/slideshow_css3/images/vert.png" /></li><!--
        --><li><img src="http://www.alsacreations.com/xmedia/tuto/exemples/slideshow_css3/images/brun.png" /></li>
    </ul>
</div>
<a href="#sContent">Prev</a> - <a href="#slideshow">Next</a>
Très bien, merci beaucoup Smiley smile
Oui, je l'ai envisagé mais ce code est destiné à être utilisé sur une boutique eBay et Jquery ne fonctionne pas dessus.
Merci encore.
Non je compte en mettre un peu plus mais c'est juste pour inclure les boutons avant arrière que j'ai besoin d'aide Smiley smile
Je vous ai décortiqué le slideshow: à vous de l'adapter.

<!DOCTYPE HTML>
<html lang="en-US">
<head>
	<meta charset="UTF-8">
	<title>Juizy Slideshow - Full CSS3/HTML5 slideshow</title>
	
	<link rel="stylesheet" href="slideshow.css" />
</head>
<body>
	
	<span id="sl_play" class="sl_command">&nbsp;</span>
	<span id="sl_pause" class="sl_command">&nbsp;</span>
	<span id="sl_i1" class="sl_command sl_i">&nbsp;</span>
	<span id="sl_i2" class="sl_command sl_i">&nbsp;</span>
	<span id="sl_i3" class="sl_command sl_i">&nbsp;</span>
	<span id="sl_i4" class="sl_command sl_i">&nbsp;</span>
	
<section id="slideshow">
	
		<a class="commands prev commands1" href="#sl_i4" title="Go to last slide">&lt;</a>
		<a class="commands next commands1" href="#sl_i2" title="Go to 2nd slide">&gt;</a>
		<a class="commands prev commands2" href="#sl_i1" title="Go to 1rst slide">&lt;</a>
		<a class="commands next commands2" href="#sl_i3" title="Go to 3rd slide">&gt;</a>
		<a class="commands prev commands3" href="#sl_i2" title="Go to 2nd slide">&lt;</a>
		<a class="commands next commands3" href="#sl_i4" title="Go to 4th slide">&gt;</a>
		<a class="commands prev commands4" href="#sl_i3" title="Go to 3rd slide">&lt;</a>
		<a class="commands next commands4" href="#sl_i1" title="Go to first slide">&gt;</a>
		
		<a class="play_commands pause" href="#sl_pause" title="Maintain paused">Pause</a>
		<a class="play_commands play" href="#sl_play" title="Play the animation">Play</a>
		
		<div class="container">
			<div class="c_slider"></div>
			<div class="slider">
				<figure>
					<img src="img/dummy-640x310-1.jpg" alt="" width="640" height="310" />
					<figcaption>The mirror of soul</figcaption>
				</figure><!--
				--><figure>
					<img src="img/dummy-640x310-2.jpg" alt="" width="640" height="310" />
					<figcaption>Let's cross that bridge when we come to it</figcaption>
				</figure><!--
				--><figure>
					<img src="img/dummy-640x310-3.jpg" alt="" width="640" height="310" />
					<figcaption>Sushi<em>(do)</em> time</figcaption>
				</figure><!--
				--><figure>
					<img src="img/dummy-640x310-4.jpg" alt="" width="640" height="310" />
					<figcaption>Waking Life</figcaption>
				</figure>
			</div>
		</div>
		
		<span id="timeline"></span>
		
		<ul class="dots_commands"><!--
			--><li><a title="Show slide 1" href="#sl_i1">Slide 1</a></li><!--
			--><li><a title="Show slide 2" href="#sl_i2">Slide 2</a></li><!--
			--><li><a title="Show slide 3" href="#sl_i3">Slide 3</a></li><!--
			--><li><a title="Show slide 4" href="#sl_i4">Slide 4</a></li>
		</ul>
		
	</section>

Modifié par rodolpheb (27 Jan 2013 - 13:05)
Merci pour votre aide, c'est vraiment très gentil.
J'ai déjà tenté avec le fichier zip de faire ce slideshow mais il ne fonctionne pas sur eBay. C'est pour cela que je voudrais tenter de faire quelque chose de simple avec le tuto d'Alsacréations.

J'ai dèja mis le code du slideshow à défilage automatique (premier lien), il faudrait juste combiner ce code avec le système avant arrière de ce tuto :
http://www.alsacreations.com/tuto/lire/1058-ID-slideshow-css3-target-animation.html

J'ai tenté cela mais les boutons ne fonctionnent pas :
<style type="text/css">
@-webkit-keyframes AutoSlide {
	0%, 15%, 100% {
		left: 0px; /* première image et dernière*/
	}
	35%, 50% {
		left: -150px; /*2ème image*/
	}
	70%, 85% {
		left: -300px; /*3ème image*/
	}
}
@-moz-keyframes AutoSlide {
	0%, 15%, 100% {
		left: 0px; /* première image et dernière*/
	}
	35%, 50% {
		left: -150px; /*2ème image*/
	}
	70%, 85% {
		left: -300px; /*3ème image*/
	}
}
@keyframes AutoSlide {
	0%, 15%, 100% {
		left: 0px; /* première image et dernière*/
	}
	35%, 50% {
		left: -150px; /*2ème image*/
	}
	70%, 85% {
		left: -300px; /*3ème image*/
	}
}
#slideshow {
	position: relative;    /*le parent positionné*/
	width: 150px;          /*limite en largeur (1 élément du slideshow)*/
	height: 150px;         /*limite en hauteur*/
	overflow: hidden;      /*on cache ce qui déborde*/
}
#sContent li {
	display: inline;      /*on aligne les éléments du slideshow*/
}
#sContent {
	position: absolute;   /*on sort l'élément du flux*/
	top: 0;               /*on le positionne précisément dans ...*/
	left: 0;              /*l'angle haut gauche de son parent positionné*/
	width: 450px;
	margin: 0;            
	padding: 0;
	
	/* CSS3 Transition */
    transition: left 1s;
	
	/*CSS3 webkit keyframes animation*/
	-webkit-animation-name: AutoSlide;
	-webkit-animation-duration: 10s;
	-webkit-animation-iteration-count: infinite;
	-webkit-animation-timing-function: ease-in-out;
	
	/*CSS3 moz keyframes animation*/
	-moz-animation-name: AutoSlide;
	-moz-animation-duration: 10s;
	-moz-animation-iteration-count: infinite;
	-moz-animation-timing-function: ease-in-out;
	
	/*CSS3 W3C keyframes animation*/
	animation-name: AutoSlide;
	animation-duration: 10s;
	animation-iteration-count: infinite;
	animation-timing-function: ease-in-out;
	
	-webkit-transition: left 1s;
	-moz-transition: left 1s;
	-o-transition: left 1s;
	transition: left 1s;
}
#slideshow:target #sContent {
        /* en ciblant #slideshow on décale #sContent */
    left: -150px;         /* ou - 100% */
}
</style>
<div id="slideshow">
    <ul id="sContent"><!--
        --><li><img src="http://www.alsacreations.com/xmedia/tuto/exemples/slideshow_css3/images/bleu.png" alt="Image bleue" /></li><!--
        --><li><img src="http://www.alsacreations.com/xmedia/tuto/exemples/slideshow_css3/images/vert.png" /></li><!--
        --><li><img src="http://www.alsacreations.com/xmedia/tuto/exemples/slideshow_css3/images/brun.png" /></li>
    </ul>
</div>
<a href="#sContent">Prev</a> - <a href="#slideshow">Next</a>


Merci beaucoup pour votre aide Smiley smile
C'est bon j'ai réussis à me débrouiller, j'ai fais un slideshow avec le tuto d'Alsacréations (c'est le premier lien que je vous ai donné) par contre vous pourriez me dire comment on fait pour régler le "@keyframes AutoSlide" quand on changer la taille des images. J'ai mis des images de 320px et il y'en a trois pour le moment. J'ai lu et relu le sujet mais je ne comprends pas trop le système de pourcentage. Merci Smiley smile


@keyframes AutoSlide {
    0% {
        left: 0px; /*1ère image*/
    }
    15% {
        left: 0px; /*idem pour attente*/
    }
    35% {
        left: -320px; /*2ème image*/
    }
    50% {
        left: -320px; /*idem pour attente*/
    }
    70% {
        left: -640px; /*3ème image*/
    }
    85% {
        left: -640px; /*idem pour attente*/
    }
    100% {
        left: 0px; /*1ère image*/
    }
}


Testez, testez encore. Essayez avec des valeurs différentes, vous ne risquez rien... Smiley smile

Note: les largeurs d'images peuvent être données en % (100%, 200%)


Regardez cet autre exemple
Bonjour,

J'ai réussis à faire quelque chose, vous pouvez voir ici : stores.ebay.fr/Cine-Shop
Néanmoins, j'aimerais savoir pourquoi ce slideshow n'est visible que sur Google Chrome ?

Cordialement
Modifié par Seb09 (03 Feb 2013 - 07:50)
Seb09 a écrit :
j'aimerais savoir pourquoi ce slideshow n'est visible que sur Google Chrome ?

et aussi sur Firefox et Safari (Mac)
Merci encore pour votre aide, c'est vraiment très gentil Smiley smile
Vous voyez le défilement avec votre ordinateur sur Firefox et Safari ?