Ankündigung

Einklappen
Keine Ankündigung bisher.

Objekt einblenden / ausblenden

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Objekt einblenden / ausblenden

    Hi

    Ich versuche gerade zwei Sachen zu kombinieren.

    Eine Message soll eingeblendet werden und nach 5 Sekunden wieder ausgeblendet werden.

    Soweit so einfach.

    Jedoch will ich auch, dass, wenn der User auf die Message klickt, diese schon vorzeitig ausgeblendet wird.

    Folgendes blendet Zeit gesteuert ein und aus. Eine Reaktion auf Klick erfolgt jedoch nicht:

    Code:
    hiddenMessage = function () {
        if ($('.hiddenMessage').length > 0) {
            var hiddenMsg = $('.hiddenMessage');
            var Msg = hiddenMsg.html();
                if(Msg.length > 0) {
                    hiddenMsg.slideDown().delay(3000).slideUp();
                    hiddenMsg.click(function() {
                       $(this).slideUp(); 
                    });
                    
                }
        }
    }
    Wie mache ich es richtig?

  • #2
    Spar Dir das Delay und benutze ein echtes Timeout. Das kannst Du nämlich abbrechen.

    Kommentar


    • #3
      Oder sieh dir das jGrowl an, das bringt die Funktionalität mit: archive.plugins.jquery.com/project/jGrowl

      Kommentar


      • #4
        674.88 KB für diesen 2-Zeiler-Effekt? Hmm.

        Kommentar


        • #5
          @nikosch: Danke. Werd's ausprobieren.
          @ChristianK: Da hat nikosch wohl recht. Dank auch an Dich.

          Kommentar


          • #6
            Zitat von nikosch Beitrag anzeigen
            674.88 KB für diesen 2-Zeiler-Effekt? Hmm.
            Rein für diese Anforderung ist es wihl zu viel, abr falls einmal mehrere Meldungen gleichzeitig oder ähnliches erfolgen sollten wäre das Framework gut...

            Kommentar


            • #7
              Zitat von ChristianK Beitrag anzeigen
              abr falls einmal mehrere Meldungen gleichzeitig ..erfolgen sollten wäre das Framework gut...
              Auch mehrere Meldungen gleichzeitig ist für pures jQuery kein Problem.
              So sollte es gehen:
              PHP-Code:
              hiddenMessage = function(){
                  var 
              hiddenMsg = $('.hiddenMessage');
                  
              hiddenMsg.slideDown();
                  var 
              t_id window.setTimeout(function(){hiddenMsg.slideUp();},4000);
                  
              hiddenMsg.click(function(){
                      
              window.clearTimeout(t_id);
                      
              hiddenMsg.slideUp();
                  });
              }; 

              Kommentar

              Lädt...
              X