Bonjour à tous :)

L'idée est assez simple, j'ai une icone de menu responsive alignée à droite. Au clic sur celui-ci, mon menu s'affiche.
A la base ce menu est aligné à droite, hors de la largeur de l'écran de l'utilisateur. Au clic, il est sensé se déplacer pour se caler à droite mais de façon à être visible.

Voici mon code CSS :

.menu-container {
    position: absolute;
    display: none;
    top:0;
    right: 0;
    width: 240px;
    height: 100%;
    background: #212121;
    -webkit-transform:translateX(240px);
    -webkit-transition:0.3s;
    -moz-transition:0.3s;
}

Et code js :

$( '#menu-responsive' ).on( 'click', function(e) {
        e.preventDefault();
        $('#menu-container').velocity({
            translateX: 0
        }, {
            display:'block',
        });
    });

Mon soucis étant que je n'arrive pas à avoir une animation fluide de décalage. Genre il se décale est apparaît simultanément en transition.
J'ai essayé avec velocity UI et les 'transition.slideRightIn' mais il m'affiche une scrollbareX et c'est saccadé.

Pouvez vous m'éclairer les gars ?

Have fun ;)

7 réponses


Govan06
Réponse acceptée
Barbusan
Auteur

Salut Govan06 ;)

Merci pour ton aide, et effectivement c'est bien l'effet souhaité.
Le transition:0.3s posait problème et l'overflow sur le body règle le problème.

Gratz !

Barbusan
Auteur

J'en profites !
Peux tu m'aider à gérer le stagger ?

Soit il déforme mes a soit ça ne fonctionne pas.

Encore merci pour ton aide ;)

Tu veux mettre un stagger sur les liens contenus dans le menu container ?

Barbusan
Auteur

Oui exactement :)

D'ailleurs je suis en train de le passer en responsive et tout réagi bizarrement.

Barbusan
Auteur

Done !
Merci bien je testerai ça et te ferai mon retour.

Es-tu à l'aise en responsive design ?