Jak zmienić kursor na tę ikonę ładowania, gdy wywoływana jest funkcja i jak zmienić ją z powrotem na normalny kursor w javascript / jquery
javascript
jquery
html
ahmet
źródło
źródło
Odpowiedzi:
W swoim jQuery użyj:
a potem z powrotem do normalności
źródło
$("html,body")
ponieważ treść mojej strony mieści się tylko w połowie okna, więc kursor nadal był domyślny po najechaniu na dolną połowę.!important
z rozwiązaniem @ hrabinowitz poniżejKolega zaproponował podejście, które uważam za lepsze od wybranego tutaj rozwiązania. Najpierw w CSS dodaj tę regułę:
Następnie, aby włączyć kursor postępu, powiedz:
Aby wyłączyć kursor postępu, powiedz:
Zaletą tego podejścia jest to, że gdy wyłączysz kursor postępu, wszystkie inne kursory, które mogły zostać zdefiniowane w twoim CSS, zostaną przywrócone. Jeśli reguła CSS nie ma wystarczającego pierwszeństwa, aby zastąpić inne reguły CSS, możesz dodać identyfikator do treści i reguły lub użyć
!important
.źródło
Nie używaj do tego jQuery w 2018 roku! Nie ma powodu, aby włączać całą bibliotekę zewnętrzną tylko po to, aby wykonać tę jedną czynność, którą można wykonać za pomocą jednej linii:
Zmień kursor na spinner:
document.body.style.cursor = 'wait';
Przywróć kursor do normalnego:
document.body.style.cursor = 'default';
źródło
Poniższy sposób jest moim preferowanym sposobem i spowoduje zmianę kursora za każdym razem, gdy strona ma się zmienić, tj
beforeunload
źródło
Korzystanie z jquery i css:
HTML:
<div id="element">Click and wait</div>
CSS:
.wait {cursor:wait}
Demo tutaj
źródło
div
. W praktyce wybrany element do wyświetlenia kursora oczekiwania powinien być większy niż element kliknięty. Często najlepiej pokazać się na całej stronie, tak jak w zaakceptowanej odpowiedzi.Zastąp wszystkie pojedyncze elementy
źródło
Spowoduje to utworzenie kursora ładowania, dopóki wywołanie AJAX nie powiedzie się.
źródło
success
icomplete
są usuwane w jQ3, więc trzeba iść z$.ajax(...).always(...);
Kursor progess może być ustawiony wbeforeSend
funkcji.jQuery:
$("body").css("cursor", "progress");
z powrotem
$("body").css("cursor", "default");
Czysty:
document.body.style.cursor = 'progress';
z powrotem
document.body.style.cursor = 'default';
źródło
Nie potrzebujesz do tego JavaScript. Możesz zmienić kursor na cokolwiek chcesz za pomocą CSS:
Zobacz tutaj, aby uzyskać informacje o obsłudze przeglądarek, ponieważ w zależności od przeglądarki występują pewne subtelne różnice
źródło
Oto coś, co możesz zrobić. Zdefiniuj funkcję do wywołania tuż przed każdym wywołaniem AJAX. Przypisz także funkcję do wywołania po zakończeniu każdego wywołania ajax. Pierwsza funkcja ustawi kursor oczekiwania, a druga wyczyści go. Wyglądają następująco:
źródło
Jeśli oszczędza zbyt szybko, spróbuj tego:
źródło
Ustawienie kursora na „treść” zmieni kursor na tło strony, ale nie na elementy sterujące na nim. Na przykład przyciski nadal będą miały zwykły kursor po najechaniu na nie kursorem. Oto, czego używam:
Aby ustawić kursor 'czekaj', stwórz element stylu i wstaw w nagłówku:
Następnie, aby przywrócić kursor, usuń element stylu:
źródło
Odkryłem, że jedynym sposobem na to, aby kursor skutecznie zresetował swój styl z powrotem do tego, jaki miał przed zmianą na styl oczekiwania, było ustawienie oryginalnego stylu w arkuszu stylów lub w tagach stylów na początku strony, ustaw klasę danego obiektu do nazwy stylu. Następnie, po okresie oczekiwania, ustawiasz styl kursora z powrotem na pusty ciąg, a nie na „domyślny”, i przywraca on pierwotną wartość ustawioną w znacznikach stylów lub arkuszu stylów. Ustawienie go na „domyślny” po okresie oczekiwania zmienia tylko styl kursora dla każdego elementu na styl o nazwie „domyślny”, którym jest wskaźnik. Nie przywraca jej pierwotnej wartości.
Istnieją dwa warunki, aby to zadziałało. Najpierw musisz ustawić styl w arkuszu stylów lub w nagłówku strony za pomocą tagów stylów, NIE jako styl wbudowany, a po drugie należy zresetować jego styl, ustawiając styl oczekiwania z powrotem na pusty ciąg.
źródło