2016-11-11 3 views
2

ich einen benutzerdefinierten Loader verfügen, i in CSS gemacht haben und dies ist mein html:Zugabe Loadbar aus dem Inneren der Funktion

<div class="loader"></div> 

und ich möchte dies fügen Sie einfach nach dem :("Testen Sie Ihre Internetverbindung Qualität ... ")

function InitiateSpeedDetection() { 
    ShowProgressMessage("Testing your internet connection quality..."); 
    document.getElementsByTagName("li")[2].removeAttribute("class"); 
    window.setTimeout(MeasureConnectionSpeed, 1); 
}; 

Ich habe das versucht.

var x = document.getElementById("loader").innerHTML; 
function InitiateSpeedDetection() { 
    ShowProgressMessage("Testing your internet connection quality..."); 
    document.getElementById("loader").innerHTML = x; 
    document.getElementsByTagName("li")[2].removeAttribute("class"); 
    window.setTimeout(MeasureConnectionSpeed, 1); 
}; 

Es hat nicht funktioniert. Zusätzlich zu meiner Frage, wie kann ich Standard-Timeout ändern.

+0

Können Sie vollständige Beispiel, nicht kleine Teile des Codes zur Verfügung stellen? – br3t

+0

Sicher war es einfach zu lange, ich wollte nicht durcheinander kommen. Aber ich habe es gemacht. https://jsfiddle.net/8u4afnsL/ – Itslearning

Antwort

1

.setTimeout verwendet Millisekunden, nicht Sekunden. Um etwas zu sehen, sollten Sie Ihr Timeout auf einen größeren Wert einstellen, zum Beispiel 3 Sekunden.

window.setTimeout(MeasureConnectionSpeed, 3000); 
1

In Bezug auf das Aus-/Einblenden des Laders ist es schwer, sicher zu sagen, ohne den Rest des Codes zu suchen, aber Sie können die folgende versuchen:

  1. hinzufügen display: none zum CSS von .loader

  2. In Ihrer InitiateSpeedDetection() Funktion, so etwas wie:

    document.getElementById("loader").style.display = 'initial'; 
    
  3. es ändern zu display: hidden zurück, wenn Sie diese Arbeit verstecken will sich der Lader

?

+0

Ich konnte es noch nicht arbeiten lassen, aber ich arbeite daran. Vielen Dank für Ihre Zeit. – Itslearning

Verwandte Themen