Vous pouvez également ajouter paddingLeft: 'toggle', paddingRight: 'toggle'lorsque l'élément a un rembourrage interne.
piotr_cz
17
Fonctionne bien, seulement il glisse de gauche à droite lorsque je l'essaye. Est-il possible de l'animer dans l'autre sens?
twan
2
Le seul problème est que s'il y a du contenu à l'intérieur, il "l'écrase" horizontalement, ce qui fait bouger / redimensionner / enrouler les commandes, etc.
Neil Barnwell
1
Votre code a besoin de plus CSSpour ressembler à une vraie diapositive à gauche
AmerllicA
1
@NeilBarnwell si vous le pouvez, mettez le contenu dans un emballage de largeur fixe et ayez le contenant overflow: hidden.
Ben Philipp
239
Ceci peut être réalisé nativement en utilisant les méthodes jQueryUI hide / show. Par exemple.
// To slide something leftwards into view,// with a delay of 1000 msec
$("div").click(function(){
$(this).show("slide",{ direction:"left"},1000);});
@ekerner - cela nécessite JQueryUI, qui est une bibliothèque massive. Si tout ce que vous voulez, c'est une simple transition de diapositive, ce n'est probablement pas la réponse;)
Jesse
9
C'est le meilleur moyen si jQueryUI est installé.
propulsé par vapeur
5
Pour clarifier - le fichier min est d'au moins 235kb !! C'est bien, mais cela ajoutera considérablement à votre page, comme le souligne
@Jesse
1
En utilisant le générateur personnalisé et en supprimant tout sauf l'animation de diapositive, il est possible d'obtenir le JS minifié sous 20 Ko.
Skylar Ittner
Je souhaite que les documents de l'interface utilisateur JQuery contiennent des exemples comme celui-ci. Merci
Calcule les valeurs en 'px', donc pas faisable pour '%'
Faisal Ashfaq
il se déplace vers la gauche à chaque clic.
Elyor
Vous pouvez vérifier la largeur extérieure et l'utiliser pour ajouter la marge de droite
Tofandel
22
Jetez un œil à cet exemple de travail sur Fiddle, qui utilise l' interface utilisateur jQuery . C'est une solution que j'ai utilisée à l'origine de gauche à droite, mais je l'ai modifiée pour qu'elle fonctionne de droite à gauche.
Il permet à l'utilisateur de cliquer rapidement sur les liens sans interrompre l'animation parmi les panneaux disponibles.
Le code JavaScript est simple:
$(document).ready(function(){// Mostra e nascondi view-newsvar active ="europa-view";
$('a.view-list-item').click(function(){var divname=this.name;
$("#"+active ).hide("slide",{ direction:"right"},1200);
$("#"+divname).delay(400).show("slide",{ direction:"right"},1200);
active = divname;});});
Obtenez HTML et CSS sur le lien Fiddle.
Ajout d'un fond blanc et d'un rembourrage à gauche pour une meilleure présentation des effets.
Pourquoi ne pas utiliser width: 'toggle'? btn.show().animate({width: 'toggle'}, {duration: 500});c'est tout ce dont vous auriez besoin, je crois.
Aart den Braber
6
Une autre bibliothèque qui mérite d'être mentionnée est animate.css . Cela fonctionne très bien avec jQuery, et vous pouvez faire beaucoup d'animations intéressantes simplement en basculant les classes CSS.
GreenSock Animation Platform (GSAP) avecTweenLite/TweenMaxfournit des transitions beaucoup plus fluides avec une personnalisation beaucoup plus grande que les transitions jQuery ou CSS3. Afin d'animer les propriétés CSS avec TweenLite / TweenMax, vous aurez également besoin de leur plugin appelé "CSSPlugin". TweenMax l'inclut automatiquement.
Selon leur site Web:
"TweenLite est un outil d'animation extrêmement rapide, léger et flexible qui sert de base à la plate-forme d'animation GreenSock (GSAP)."
Vous pouvez d'abord définir la largeur de l'élément comme 0, flottant à droite, puis sur l'événement que vous êtes sur le point de le montrer .. ce serait comme
Un exemple d'animation de droite à gauche sans interface utilisateur jQuery , uniquement avec jQuery (n'importe quelle version, voir https://api.jquery.com/animate/ ).
<scriptsrc="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script><divclass="wrap">
click here
<divclass="content">
I would like to have a div go from collapsed to expanded (and vice versa), but do so from right to left. Most everything I see out there is always left to right.
</div></div>
Lorsque vous répondez à une question de dix ans avec quatorze autres réponses existantes, cela aiderait à expliquer quelle nouvelle approche votre réponse apporte, et si elle aurait été valide lorsque la question a été posée, ou si elle utilise des techniques devenues disponibles au cours de ces dix années .
Jason Aller
1
Un exemple fait par moi en utilisant le scroll (juste HTML, CSS et JS, juste avec la bibliothèque jquery). Lorsque vous faites défiler vers le bas, un bouton glisse vers la gauche.
De plus, je vous suggère que si le seul que vous voulez est cet effet, n'utilisez pas jQuery UI car il est trop lourd (si vous voulez juste l'utiliser pour ça).
Réponses:
Référence: https://api.jquery.com/animate/
la source
paddingLeft: 'toggle', paddingRight: 'toggle'
lorsque l'élément a un rembourrage interne.CSS
pour ressembler à une vraie diapositive à gaucheoverflow: hidden
.Ceci peut être réalisé nativement en utilisant les méthodes jQueryUI hide / show. Par exemple.
Référence: http://docs.jquery.com/UI/Effects/Slide
la source
Utilisez ceci:
Démo en direct
Version améliorée
Du code a été ajouté à la démo, pour éviter la double marge lors d'un double clic: http://jsfiddle.net/XNnHC/942/
Utilisez-le avec assouplissement;)
http://jsfiddle.net/XNnHC/1591/
Les codes JavaScript supplémentaires ont été supprimés.
Les noms de classe et certains codes CSS ont changé
Fonctionnalité ajoutée pour trouver si est développée ou réduite
Modification de l'utilisation ou non de l'effet d'assouplissement
Vitesse d'animation modifiée
http://jsfiddle.net/XNnHC/1808/
la source
Jetez un œil à cet exemple de travail sur Fiddle, qui utilise l' interface utilisateur jQuery . C'est une solution que j'ai utilisée à l'origine de gauche à droite, mais je l'ai modifiée pour qu'elle fonctionne de droite à gauche.
Il permet à l'utilisateur de cliquer rapidement sur les liens sans interrompre l'animation parmi les panneaux disponibles.
Le code JavaScript est simple:
Obtenez HTML et CSS sur le lien Fiddle.
Ajout d'un fond blanc et d'un rembourrage à gauche pour une meilleure présentation des effets.
la source
Utilisez ceci
la source
la source
Je l'ai fait de cette façon:
Notez que ce nœud "btn" doit être masqué avant l'animation, et vous devrez peut-être également lui définir "position: absolue".
la source
width: 'toggle'
?btn.show().animate({width: 'toggle'}, {duration: 500});
c'est tout ce dont vous auriez besoin, je crois.Une autre bibliothèque qui mérite d'être mentionnée est animate.css . Cela fonctionne très bien avec jQuery, et vous pouvez faire beaucoup d'animations intéressantes simplement en basculant les classes CSS.
Comme..
la source
GreenSock Animation Platform (GSAP) avec
TweenLite
/TweenMax
fournit des transitions beaucoup plus fluides avec une personnalisation beaucoup plus grande que les transitions jQuery ou CSS3. Afin d'animer les propriétés CSS avec TweenLite / TweenMax, vous aurez également besoin de leur plugin appelé "CSSPlugin". TweenMax l'inclut automatiquement.Tout d'abord, chargez la bibliothèque TweenMax:
Ou la version légère, TweenLite:
Ensuite, appelez votre animation:
Vous pouvez également l'appeler avec un sélecteur d'ID:
Si jQuery est chargé, vous pouvez utiliser des sélecteurs larges plus avancés, comme tous les éléments contenant une classe spécifique:
Pour plus de détails, voir: Documentation TweenLite
Selon leur site Web: "TweenLite est un outil d'animation extrêmement rapide, léger et flexible qui sert de base à la plate-forme d'animation GreenSock (GSAP)."
la source
Vous pouvez d'abord définir la largeur de l'élément comme 0, flottant à droite, puis sur l'événement que vous êtes sur le point de le montrer .. ce serait comme
Aussi simple que cela.
la source
Un exemple d'animation de droite à gauche sans interface utilisateur jQuery , uniquement avec jQuery (n'importe quelle version, voir https://api.jquery.com/animate/ ).
la source
Vérifiez l'exemple ici.
https://jsfiddle.net/q1pdgn96/2/
la source
ou vous pouvez utiliser
la source
Un exemple fait par moi en utilisant le scroll (juste HTML, CSS et JS, juste avec la bibliothèque jquery). Lorsque vous faites défiler vers le bas, un bouton glisse vers la gauche.
De plus, je vous suggère que si le seul que vous voulez est cet effet, n'utilisez pas jQuery UI car il est trop lourd (si vous voulez juste l'utiliser pour ça).
Vérifiez cet exemple
la source
Si votre
div
est parfaitement positionné et que vous connaissez la largeur, vous pouvez simplement utiliser:Ce qui le fera glisser hors de l'écran.
Alternativement, vous pouvez l'envelopper dans un conteneur
div
la source