Falc410
Vice Admiral
- Registriert
- Juni 2006
- Beiträge
- 6.597
Ich habe mit Javascript einen XHR Request damit Leute eine Datei auf den Server hochladen können. Der Fortschritt wird über eine Progressbar angezeigt. Funktioniert prima. Damit das schöner aussieht soll es aber ein Button sein.
Z.b. der hier wäre schön: http://www.materialup.com/posts/material-design-upload-button-with-progress
Das Teil wurde aber anscheinend komplett in CSS geschrieben. Ich habe absolut keine Ahnung wie ich das mit meinem Javascript Code verbinden kann. Alle animierten Buttons die ich gefunden habe sind so aufgebaut! Das ist eine Webkit Transition mit Duration - d.h. die Animation ist immer gleich lang!
Hier eine gekürzte Form meiner upload Methode:
Wie ihr seht wird die Progressbar einfach mit einem % Wert von 0 bis 100 befüllt. Gibt es keine Möglichkeit einen von den animierten Buttons die ich im Internet finde, ebenfalls so anzusprechen?
Z.b. der hier wäre schön: http://www.materialup.com/posts/material-design-upload-button-with-progress
Das Teil wurde aber anscheinend komplett in CSS geschrieben. Ich habe absolut keine Ahnung wie ich das mit meinem Javascript Code verbinden kann. Alle animierten Buttons die ich gefunden habe sind so aufgebaut! Das ist eine Webkit Transition mit Duration - d.h. die Animation ist immer gleich lang!
Hier eine gekürzte Form meiner upload Methode:
Code:
function upload(blob){
var xhr = new XMLHttpRequest();
xhr.open('POST', '{% url 'recorder:upload' %}', true);
progressBar = document.getElementById('progress');
progressBar.value = 0;
$('#progress').show();
// Visualize upload progress
xhr.upload.onprogress = function(e) {
if (e.lengthComputable) {
progressBar.value = (e.loaded / e.total) * 100;
progressBar.textContent = progressBar.value; // Fallback for unsupported browsers.
}
};
xhr.onreadystatechange=function(){
if (xhr.readyState==4 && xhr.status==200){
$('#progress').hide();
} else if (xhr.readyState==4 && xhr.status == 400 || xhr.readyState==4 && xhr.status == 500) {
alert("Error while Uploading - The admins have been notified. Please try again later")
}
};
xhr.send(blob);
}
Wie ihr seht wird die Progressbar einfach mit einem % Wert von 0 bis 100 befüllt. Gibt es keine Möglichkeit einen von den animierten Buttons die ich im Internet finde, ebenfalls so anzusprechen?