2016-04-27 8 views
3

Ich habe ein Problem mit der Anzeige des Countdowns in Sweetalert Nachricht. Nach dem Klick benutze ich die "Eine Nachricht mit Timer zum automatischen Schließen". Ich möchte, dass der Countdown in der Nachricht angezeigt wird und der Benutzer den Countdown sehen kann.Süßer Alarm. Anzeige Countdown in Alarmbox

swal({ 
    title: "Please w8 !", 
    text: "Data loading...", 
    timer: 10000, 
    showConfirmButton: false 
}); 
+0

Ich glaube nicht, ist es möglich, die Bibliothek ohne Änderung. Vielleicht kann [diese Antwort auf eine ähnliche Frage] (http://stackoverflow.com/questions/35718899/countdown-in-settinterval-function-with-sweet-alert-plugin) für Sie arbeiten. – michaPau

+1

Siehe meine Antwort. Sie finden die komplette Lösung (: –

Antwort

12

Es ist unmöglich mit SweetAlert zu tun. Das Zählen auf UI wird nicht unterstützt. Aber sag nie nie :-)

Ich habe einen kleinen Hack vorbereitet, der dir dabei helfen kann. Fügen Sie einfach den folgenden Code zu Ihrer Anwendung hinzu, und Sie werden den Live-Zählmechanismus sehen. Und vergiss nicht, auch jQuery hinzuzufügen.

var 
    closeInSeconds = 5, 
    displayText = "I will close in #1 seconds.", 
    timer; 

swal({ 
    title: "Auto close alert!", 
    text: displayText.replace(/#1/, closeInSeconds), 
    timer: closeInSeconds * 1000, 
    showConfirmButton: false 
}); 

timer = setInterval(function() { 

    closeInSeconds--; 

    if (closeInSeconds < 0) { 

     clearInterval(timer); 
    } 

    $('.sweet-alert > p').text(displayText.replace(/#1/, closeInSeconds)); 

}, 1000); 

Ergebnis:

enter image description here

+1

WOW Hack geht sehr gut. Vielen Dank! Es tut genau das, was ich wollte ... :) –

+1

Das ist erstaunlich. Einfache Lösung, aber wirklich clever. Würde es mir selbst nicht einfallen lassen, ist aber einfach anzupassen und zu verstehen. +1! –

3

Hier ist eine bessere Lösung

var timer = 10, // timer in seconds 
    isTimerStarted = false; 

(function customSwal() { 
    swal({ 
     title: "Please w8 !", 
     text: "Data loading..." + timer, 
     timer: !isTimerStarted ? timer * 1000 : undefined, 
     showConfirmButton: false 
    }); 
    isTimerStarted = true; 
    if(timer) { 
     timer--; 
     setTimeout(customSwal, 1000); 
    } 
})(); 
+0

Schnell und cool ... Danke – NoBody