jQuery nach links schieben und anzeigen

Lesezeit: 5 Minuten

jQuery nach links schieben und anzeigen
Wickewok

Ich verlängerte die jQuery Effekte genannt slideRightShow() und slideLeftHide() mit ein paar Funktionen, die ähnlich funktionieren wie slideUp() und slideDown() wie unten zu sehen. Allerdings würde ich das auch gerne umsetzen slideLeftShow() und slideRightHide().

Ich weiß, dass es beträchtliche Bibliotheken gibt, die diese Art von Dingen anbieten (ich möchte vermeiden, einen weiteren großen Satz von javascript Dateien), aber kann jemand ein einfaches Beispiel dafür geben, wie man beides implementiert slideLeftShow() oder slideRightHide()?

jQuery.fn.extend({
  slideRightShow: function() {
    return this.each(function() {
      jQuery(this).animate({width: 'show'});
    });
  },
  slideLeftHide: function() {
    return this.each(function() {
      jQuery(this).animate({width: 'hide'});
    });
  },
  slideRightHide: function() {
    return this.each(function() {
      ???
    });
  },
  slideLeftShow: function() {
    return this.each(function() {
      ???
    });
  }
});

Obenstehendes slideRightShow Die Funktion beginnt mit der Anzeige des Bildes von der linken Seite und setzt sich zur rechten Seite fort. Ich suche nach einer Möglichkeit, dasselbe zu tun, aber beginne von der rechten Seite und gehe nach links vor. Danke!

BEARBEITEN

jQuery Interface hat so etwas wie ich brauche (ich brauche im Grunde die Funktionen “slide in right” und “slide out left”), aber ich konnte dies nicht mit jQuery 1.3 zum Laufen bringen: http://interface.eyecon.ro/demos/ifx.html . Außerdem scheint ihre Demo kaputt zu sein und sie wird nur einmal eine Folie machen, bevor sie eine Million Fehler auslöst.

  • Siehe auch: stackoverflow.com/questions/596608/slide-right-to-left

    – Timo Huovinen

    24. Februar 14 um 15:04 Uhr

1644038466 232 jQuery nach links schieben und anzeigen
Bendewey

Diese Funktion ist Teil von jquery ui http://docs.jquery.com/UI/Effects/Slide Wenn Sie es mit Ihren eigenen Namen erweitern möchten, können Sie dies verwenden.

jQuery.fn.extend({
  slideRightShow: function() {
    return this.each(function() {
        $(this).show('slide', {direction: 'right'}, 1000);
    });
  },
  slideLeftHide: function() {
    return this.each(function() {
      $(this).hide('slide', {direction: 'left'}, 1000);
    });
  },
  slideRightHide: function() {
    return this.each(function() {
      $(this).hide('slide', {direction: 'right'}, 1000);
    });
  },
  slideLeftShow: function() {
    return this.each(function() {
      $(this).show('slide', {direction: 'left'}, 1000);
    });
  }
});

Sie benötigen die folgenden Referenzen

<script src="http://code.jquery.com/jquery-latest.js"></script>
<script src="http://jquery-ui.googlecode.com/svn/tags/latest/ui/jquery.effects.core.js"></script>
<script src="http://jquery-ui.googlecode.com/svn/tags/latest/ui/jquery.effects.slide.js"></script>

  • Hallo! Ich suche das Gegenteil von dem, was Sie dort implementiert haben. Wenn ich das, was ich oben habe, verwende, um ein Element anzuzeigen, erscheint im Grunde der linke Teil zuerst und geht nach rechts weiter. Ich versuche, es dazu zu bringen, von der rechten Seite zu beginnen und nach links fortzuschreiten.

    – Wickewok

    6. Februar 09 um 18:30 Uhr

  • Es funktioniert, wenn Sie das Element nach rechts schweben lassen. Ansonsten. Vielleicht möchten Sie die linke Eigenschaft animieren und das Element beim Verkleinern verschieben.

    – Bendewey

    6. Februar 09 um 18:56 Uhr

  • Das Ändern des Elements, um “rechts” zu schweben, hat die Folie für mich nicht umgekehrt. Ich habe oben klargestellt, ob das hilft.

    – Wickewok

    6. Februar 09 um 21:14 Uhr

  • Ich danke dir sehr! Ich wusste nicht, dass dies Teil der jQuery-Effekte war. Ich würde +2 geben, wenn ich könnte!

    – Wickewok

    7. Feb. 09 um 4:15

  • Link der Quelle der beiden ui-Skripte sind jetzt: jquery-ui.googlecode.com/svn/tags/latest/ui/… und “jquery-ui.googlecode.com/svn/tags/latest/ui/…

    – Muleskinner

    7. Januar 11 um 21:25 Uhr


1644038466 681 jQuery nach links schieben und anzeigen
vdboor

Vergessen Sie nicht die Polsterung und die Ränder …

jQuery.fn.slideLeftHide = function(speed, callback) { 
  this.animate({ 
    width: "hide", 
    paddingLeft: "hide", 
    paddingRight: "hide", 
    marginLeft: "hide", 
    marginRight: "hide" 
  }, speed, callback);
}

jQuery.fn.slideLeftShow = function(speed, callback) { 
  this.animate({ 
    width: "show", 
    paddingLeft: "show", 
    paddingRight: "show", 
    marginLeft: "show", 
    marginRight: "show" 
  }, speed, callback);
}

Mit den hinzugefügten Geschwindigkeits-/Rückrufargumenten ist es ein vollständiger Drop-In-Ersatz für slideUp() und slideDown().

  • Wie können sie den gleichen Effekt mit richtigem Gleiten erzielen?

    – Jayant Varshney

    12. März 14 um 11:37 Uhr


  • @JayantVarshney: Stellen Sie sicher, dass der Block rechtsbündig ist, möglicherweise mit einem inneren Block. Dieser Code verkleinert nur die Breite. Wenn Ihr CSS damit umgehen kann, haben Sie eine richtige Folie

    – vdboor

    12. März 14 um 15:44 Uhr


  • Danke … Aber ich möchte beide Effekte auf demselben Div … wie das Öffnen von rechts nach links und das Schließen von links nach rechts oder umgekehrt …

    – Jayant Varshney

    14. März 14 um 18:51 Uhr


  • Nun, wie wäre es dann mit einem Klassenwechsel beim Abschluss-Callback? 🙂

    – vdboor

    25. März 2014 um 16:07 Uhr


  • Danke, ich habe CSS3-Animationen verwendet, um diese Funktionalität zu erreichen

    – Jayant Varshney

    14. April 14 um 16:07 Uhr

jQuery nach links schieben und anzeigen
diebhatta

Sie können Ihrer jQuery-Bibliothek neue Funktionen hinzufügen, indem Sie diese Zeile in Ihre eigene Skriptdatei einfügen und einfach verwenden fadeSlideRight() und fadeSlideLeft().

Hinweis: Sie können die Breite der Animation nach Belieben ändern, z. B. 750 Pixel.

$.fn.fadeSlideRight = function(speed,fn) {
    return $(this).animate({
        'opacity' : 1,
        'width' : '750px'
    },speed || 400, function() {
        $.isFunction(fn) && fn.call(this);
    });
}

$.fn.fadeSlideLeft = function(speed,fn) {
    return $(this).animate({
        'opacity' : 0,
        'width' : '0px'
    },speed || 400,function() {
        $.isFunction(fn) && fn.call(this);
    });
}

  • Das ist genau das, was ich brauchte, ohne die jQuery-Benutzeroberfläche einzuschließen. Fügen Sie einfach die Deckkraft und Breite als Parameter hinzu. ... = function(opacity, speed, width, fn) {...}

    – Dylan Valade

    23. Februar 14 um 16:06 Uhr

Und wenn Sie die Geschwindigkeit variieren und Rückrufe einbeziehen möchten, fügen Sie sie einfach wie folgt hinzu:

        jQuery.fn.extend({
            slideRightShow: function(speed,callback) {
                return this.each(function() {
                    $(this).show('slide', {direction: 'right'}, speed, callback);
                });
            },
            slideLeftHide: function(speed,callback) {
                return this.each(function() {
                    $(this).hide('slide', {direction: 'left'}, speed, callback);
                });
            },
            slideRightHide: function(speed,callback) {
                return this.each(function() {  
                    $(this).hide('slide', {direction: 'right'}, speed, callback);
                });
            },
            slideLeftShow: function(speed,callback) {
                return this.each(function() {
                    $(this).show('slide', {direction: 'left'}, speed, callback);
                });
            }
        });

.

778920cookie-checkjQuery nach links schieben und anzeigen

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy