JavaScript Cursor Ändern (und ändern und wieder zurück)
Habe ich diese Seite, hat einige funky Datenbank Sachen, die in ein paar Sekunden zu verarbeiten, und in der Zwischenzeit würde ich gerne eine "wait"
cursor, so dass der Benutzer nicht ausflippen und halten Sie die-Taste. Ich habe die
document.body.style.cursor = "wait"
Sache, das problem dabei ist, dass es nur funktioniert, wenn die Maus über den Körper von der Seite (D. H. zeigt immer noch den normalen Mauszeiger, wenn er über eine Schaltfläche). Wie kann ich es so einstellen, dass, egal wo die Maus auf der Seite, es zeigt ein warten-icon?
Einem zweiten Teil dieser Frage ist, dass, sobald es fertig ist, es ist Sache, wie setze ich es zurück? Wenn ich Sie wieder auf "default"
scheint dies zu überschreiben "hover"
cursor ändert sich, ich hatte in meinem CSS (also es wird nicht mehr eine hand, wenn über einen bestimmten Gegenstand, etc.).
EDIT: die erste Antwort funktioniert Prima, ausser im IE ist es nicht, aktualisieren Sie den cursor (also Sie bemerken die Veränderung der cursor-Typ), bis Sie tatsächlich bewegen Sie den cursor. Alle fixes?
InformationsquelleAutor der Frage Jordan | 2011-03-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Für Ihre erste problem, versuchen Sie es mit
cursor: wait !important;
.Ihre zweite problem, die Standard-cursor für Elemente
cursor: auto;
nichtcursor: default;
odercursor: inherit;
.InformationsquelleAutor der Antwort Hello71
Was ich vorschlagen, zwei Dinge:
a) Besser du schreibst eine CSS wie
b) Verwenden Sie die JS zu behandeln den Körper Klasse
Möchten Sie vielleicht die Klasse statt ersetzen die gesamte Klasse, Attribut, was ich vorschlagen, ist die Verwendung von so etwas wie jQuery.
InformationsquelleAutor der Antwort Tom Roggero
Nicht eine Antwort auf die Frage, aber ein Weg, das zu erreichen, was gewünscht wird.
Machen ein div-Element (siehe Klasse unten) sichtbar, wenn Sie geladen werden.
können Sie eine animierte gif zu bezeichnen, dass etwas Los ist, anstatt den cursor.
.loading{
position:fixed;
height:100%;
width:100%;
left:0;
top:0;
cursor:wait;
background:#000;
opacity:.5;
z-index:999}
InformationsquelleAutor der Antwort Mahks
Styling umgegangen werden soll, die über CSS, wie bereits von W3C.com:
Vorgeschlagen von Tom Rogerro, fügen Sie eine Zeile in der CSS-Datei:
Allerdings sollte das Skript nicht überschrieben wird die gesamte Liste der Klassennamen. Tom schlug vor, die Einstellung der Klassennamen per jQuery, aber jQuery ist in diesem Fall unnötig. Einfache Javascript tun können.
Hinzufügen einer Klasse name 'warten', um den Dokument-Körper:
Entfernen Sie eine Klasse name 'warten' aus der Dokument-Körper:
InformationsquelleAutor der Antwort happyt
Alle Elemente, die nicht Erben der cursor standardmäßig (wie buttons), müssen Sie den cursor zu Erben:
Zurück zu gehen, um den Standardwert für ein element (und nicht zu brechen Dinge wie
:hover
mit einem Zwangs-cursor), legen Sie es auf eine leere Zeichenkette:InformationsquelleAutor der Antwort Delan Azabani
Wenn Sie glücklich sind mit JQuery dann einen schnellen Weg, um dieses Problem zu lösen wäre:
Ich weiß nicht, wie schön das ist, aber es wurde für mich zu arbeiten,
InformationsquelleAutor der Antwort ShudderPig
Ich habe alles versucht, aber letztendlich ist diese jquery gearbeitet, vor allem, wenn Sie wollen, warten Sie den cursor über alle Elemente, einschließlich Schaltflächen und links.
definieren, an der Spitze eckig .ts-Datei
declare var $: any;
und dann wo immer Sie wollen warten cursor:
$('*').css('cursor','wait');
entfernen und warten:
$('*').css('cursor','auto');
InformationsquelleAutor der Antwort Ashish Gupta