Chcę pokazać użytkownikowi stan ładowania wyniku. Jak zmienić kursor lub gif podczas ładowania wyniku w div za pomocą $ MyDiv.load ("page.php")?kursor oczekiwania jquery podczas ładowania html w div
Odpowiedz
- Początkowo Style loading image niewidoczny.
- Zmień styl na widoczny po rozpoczęciu ładowania.
- Zmień styl na niewidoczny po załadowaniu zakończonym za pomocą argumentu wywołania zwrotnego do załadowania().
Przykład:
$("#loadImage").show();
$("#MyDiv").load("page.php", {limit: 25}, function(){
$("#loadImage").hide();
});
$("body").css("cursor", "progress");
Wystarczy pamiętać, aby zwrócić go potem:
$MyDiv.load("page.php", function() {
// this is the callback function, called after the load is finished.
$("body").css("cursor", "auto");
});
to nie działa na moim miejscu, ale $ („*”) css („kursor” , "progress") zrobił – Bryan
hmm ... to podejście ma zły efekt uboczny ... ustawienie $ ("*").css ("kursor", "auto") usuwa wszelkie specjalne kursory, które można ustawić na elementach na stronie. nie dobrze! – ekkis
@ekkis Czy znasz alternatywę? – k0pernikus
$("*").css("cursor", "progress")
będzie działać bez względu na to, gdzie na stronie aktualnie wskazującego. W ten sposób nie trzeba przesuwać kursora, aby zobaczyć, jak jest aktywowany.
ładne, ale nie działa w Chrome (http://code.google.com/p/chromium/issues/detail?id=26723) –
działa teraz w chrome – Bryan
yikes! takie podejście jest wadliwe. zamazuje przypisania kursora do wszystkiego na stronie. – commonpike
myślę, że najlepiej jest ustawić w pliku css
body.wait *, body.wait {
cursor:wait !important;
}
i dodaj/usuń klasy czekać w organizmie
metoda ta zastępuje wszystkie kursory w wejściach, linki itp
Podobają mi się podejścia, ale nie działa na IE 9. podejście do góry z '$ ('*'). Css (" kursor ", ...)' did though – ekkis
yikes! takie podejście jest wadliwe. zamazuje przypisania kursora do wszystkiego na stronie – ekkis
To jest faktycznie najlepsze rozwiązanie dla różnych przeglądarek - przetestowane. po usunięciu klasy wait CSS będzie kaskadować z powrotem do ustawionego kursora, nie zmieniając go tak, jak inne rozwiązania. Thx Marmot. @ekkis powinieneś przetestować go ponownie. działa w IE9. –
Dla na przykład, jeśli chcesz wyświetlić większy obraz po najechaniu na miniaturę:
//Hovered image
$("a.preview").hover(function(e) {
var aprev = this;
//Show progress cursor while loading image
$(aprev).css("cursor", "progress");
//#imgpreview is the <div> to be loaded on hover
$("#imgpreview").load(function() {
$(aprev).css("cursor", "default");
});
}
Cięcie Podejście analityki JQuery, choć niekoniecznie wydajne, polega na dodawaniu i usuwaniu zajętej klasy do wszystkich obiektów.
pamiętać, że nie wszystkie przeglądarki (np Firefox) zakładamy wysokości 100% dla zewnętrznej widocznego obiektu, tak zajęty kursor dostanie wyświetlany tylko na części ekranu
<head runat="server">
<title></title>
<style type="text/css">
.busy
{
cursor: wait !important;
}
</style>
<script type="text/javascript" src="scripts/jquery-1.7.2.min.js"></script>
<script type="text/javascript">
//<![CDATA[
$(function() {
$("#btnToggleWait").click(function (e) {
if ($(e.target).hasClass("busy")) {
$("*").removeClass("busy");
}
else {
$("*").addClass("busy");
}
e.preventDefault();
e.stopPropagation();
return false;
});
});
//]]>
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<button id="btnToggleWait">
Toggle Wait</button>
</div>
</form>
</body>
naprawdę myślę że jest to lepsze rozwiązanie, aby po prostu użyć klasy w elemencie ciała
$('body').addClass('cursorProgress');
a kiedy chcesz je zachować, jak to było wcześniej tylko:
$('body').removeClass('cursorProgress');
a ty css plik umieścić coś takiego:
body.cursorProgress {
cursor: progress;
}
Więc z tego rozwiązania nie są przesłanianie domyślne lub zmiany wprowadzone na stylach kursora, a Drugą zaletą jest to, że masz możliwość dodawania ważne w twoim css.
body.cursorProgress {
cursor: progress !important;
}
Wystarczy popatrzeć na moje rozwiązanie, obejmuje wszystkie elementy, nie tylko tag ciało. https://stackoverflow.com/a/26183551/1895428
- 1. Jak wyświetlić komunikat oczekiwania w AngularJS podczas ładowania danych?
- 2. jquery replace div content html()
- 3. jQuery parse html bez ładowania obrazów
- 4. jquery: usunąć kursor wskaźnika?
- 5. Blackberry - Ekran ładowania/oczekiwania z animacją
- 6. Wystąpił problem podczas ładowania wielu wersji jQuery
- 7. Wstawianie HTML do div przy użyciu JQuery
- 8. Klonowanie HTML DIV z jQuery przy wyborze
- 9. jQuery: dodawanie html po grupie div
- 10. Przekładka HTML div poziomy przewijania u góry div bez jquery
- 11. Jak zdobyć html div na innej stronie z jQuery ajax?
- 12. HTML5 lub JQuery Pełnoekranowy kursor krzyża
- 13. Biała strona podczas ładowania podczas korzystania z jQuery Mobile
- 14. Jak zmienić kursor, aby poczekać, używając jQuery .load()
- 15. jQuery mobile dodaje "nagłówek ładowania" na stronę
- 16. łączenie jquery w html
- 17. JQuery BlockUI kursor ładowania myszy nie wraca do domyślnego w Google Chrome
- 18. Jquery część obciążenia HTML Zewnętrznych
- 19. Przewiń do div używając jquery
- 20. fokus() element wejściowy z jQuery, ale kursor nie pojawia się
- 21. odśwież div z jquery
- 22. jQuery duplikat DIV do innego DIV
- 23. Pokaż Ukryj DIV: jQuery
- 24. jquery get element, w którym kursor jest
- 25. Czy JQuery (...). Html() buggy w jQuery 1.3.2?
- 26. jQuery animacja ładowania tekst
- 27. Wybierz wszystkie html w tym opakowaniu div
- 28. Symbol zastępczy tła/obrazu podczas oczekiwania na załadowanie pełnego obrazu?
- 29. Zablokuj kursor myszy podczas przeciągania w Chrome
- 30. Kursor przeskakuje do początku znacznika kodu podczas aktualizacji html w nim
Aby faktycznie utworzyć ładujący się gif, sprawdź http://www.ajaxload.info/ gdzie możesz spersonalizuj i zapisz. – Darwyn