Bonjour =)
J'essaie de creer un slider responsive. Tout marche sauf un detail...
En gros :
on a un "menu" avec 3 elements.
Ensuite un container pour fixer une taille maximum. Dans ce container, une div qui fait 3 fois la taille de son parent. Dans ce sous container, 3 div en float left.
Le premier container ne laisse l'espace que pour une seule div. Lorsque l'on clique sur le premier lien du menu, on positionne le sous container en left 0. Si on clique sur le 2e lien, alors on met une valeur negative a son left correspondant a la taille du container. Si on clique sur le 3e lien, alors on recule de deux fois la taille du container.
Avec des tailles fixes, ca marche, mais en responsive, un detail ne marche pas : le left n'est pas dynamique (quand je redimmensionne la fenetre, ca decale tout).
Mes codes :
En gros, j'ai l'impression que la valeur websiteWidth dans l'event click n'est pas mise a jour.
J'aimerais bien mettre un truc du genre $(window).resize(websiteWidth)...
Comment faire ? Merci
Modifié par LightBen (23 Oct 2013 - 14:11)
J'essaie de creer un slider responsive. Tout marche sauf un detail...
En gros :
on a un "menu" avec 3 elements.
Ensuite un container pour fixer une taille maximum. Dans ce container, une div qui fait 3 fois la taille de son parent. Dans ce sous container, 3 div en float left.
Le premier container ne laisse l'espace que pour une seule div. Lorsque l'on clique sur le premier lien du menu, on positionne le sous container en left 0. Si on clique sur le 2e lien, alors on met une valeur negative a son left correspondant a la taille du container. Si on clique sur le 3e lien, alors on recule de deux fois la taille du container.
Avec des tailles fixes, ca marche, mais en responsive, un detail ne marche pas : le left n'est pas dynamique (quand je redimmensionne la fenetre, ca decale tout).
Mes codes :
<div class="container-mini">
<div class="menu">
<div class="menu-element"><a href="#" id="menuWeb" title="Web"></a></div>
<div class="menu-element"><a href="#" id="menuGraphics" title="Graphics"></a></div>
<div class="menu-element"><a href="#" id="menuFormations" title="Formations"></a></div>
</div>
</div>
<div class="main-content">
<div class="container-mini">
<div class="container-parts">
<div class="website-part part-1">
contenu
</div>
<div class="website-part part-2">
contenu
</div>
<div class="website-part part-3">
contenu
</div>
</div>
</div>
</div>
.menu { width: 100%; }
.menu-element { width: 33.33%; line-height: 1.6rem; float: left; text-align: center; text-transform: uppercase; }
.menu a { display: block; width: 100%; }
.main { position: relative; padding-bottom: 200px; }
.container-mini { max-width: 1280px; position: relative; margin: 0 auto; padding: 0 10px; overflow: hidden; }
.container-parts { transition: left 1s ease-in-out; position: relative; }
.website-part { float: left; }
var websiteWidth, containerPartsWidth, websitePartWidth;
function responsiveSliding() {
websiteWidth = $('.container-mini').outerWidth();
containerPartsWidth = $('.container-parts').width(websiteWidth * 3);
websitePartWidth = $('.website-part').width(websiteWidth);
$('#menuWeb').click(function() {
$('.container-parts').css('left', '0');
});
$('#menuGraphics').click(function() {
$('.container-parts').css('left', -websiteWidth + "px");
});
$('#menuFormations').click(function() {
$('.container-parts').css('left', -(2 * websiteWidth) + "px");
});
// */
}
responsiveSliding();
$(window).resize(responsiveSliding);
En gros, j'ai l'impression que la valeur websiteWidth dans l'event click n'est pas mise a jour.
J'aimerais bien mettre un truc du genre $(window).resize(websiteWidth)...
Comment faire ? Merci

Modifié par LightBen (23 Oct 2013 - 14:11)