Czy można wykryć, gdy obraz został załadowany za pomocą jQuery?Wykryj ładowanie obrazu
Odpowiedz
Można użyć obsługi .load()
zdarzeń, takich jak to:
$("#myImg").load(function() {
alert('I loaded!');
}).attr('src', 'myImage.jpg');
Pamiętaj, aby dołączyć go przed ustawieniu źródła lub wydarzenie mogło zwolniony przed załączeniu obsługi słuchać na nim (np. ładowanie z pamięci podręcznej).
Jeśli to nie wykonalne (ustawienie src
po związaniu), należy sprawdzić, czy jest naładowana i ogień go samodzielnie, tak:
$("#myImg").load(function() {
alert('I loaded!');
}).each(function() {
if(this.complete) $(this).load();
});
To tak proste w użyciu zwykłego Javascript:
// Create new image
var img = new Image();
// Create var for image source
var imageSrc = "http://example.com/blah.jpg";
// define what happens once the image is loaded.
img.onload = function() {
// Stuff to do after image load (jQuery and all that)
// Within here you can make use of src=imageSrc,
// knowing that it's been loaded.
};
// Attach the source last.
// The onload function will now trigger once it's loaded.
img.src = imageSrc;
to nie powiedzie się podczas sprawdzania obrazów, które są już w pamięci podręcznej. – vsync
Byłem również badany przez długi czas, i odkryli tej wtyczki, aby cudownie pomóc z tym: https://github.com/desandro/imagesloaded
Wygląda na to, że jest strasznie dużo kodu, ale ... Nie znalazłem innego sposobu sprawdzenia, kiedy obraz został załadowany.
Korzystanie z funkcji jQuery on ("load") jest właściwym sposobem sprawdzenia, czy obraz jest załadowany. Należy jednak pamiętać, że funkcja on ("load") nie działa, jeśli obraz jest już w pamięci podręcznej.
var myImage = $('#image_id');
//check if the image is already on cache
if(myImage.prop('complete')){
//codes here
}else{
/* Call the codes/function after the image is loaded */
myImage.on('load',function(){
//codes here
});
}
myślę, może to pomóc trochę:
$('img').error(function(){
$(this).attr(src : 'no_img.png');
})
Więc jeśli załadowane - zostanie pokazany oryginalny obraz. W innym - zostanie wyświetlony obraz, który zawiera fakty z uszkodzonym obrazem lub nagłówkiem HTTP 404.
Łatwo z jQuery:
$('img').load(function(){
//do something
});
Jeśli próbowałeś go z:
$('tag')html().promise().done(function(){
//do something
}) ;
jednak, że nie będzie sprawdzić, czy obraz jest obciążenie. Ten ogień został zrobiony, jeśli kod jest ładunkiem. W przeciwnym razie możesz sprawdzić, czy kod został wykonany, a następnie uruchomić funkcję ładowania obrazu i sprawdzić, czy obraz jest naprawdę załadowany. Więc robimy kombinację obu:
$('tag')html('<img src="'+pic+'" />').promise().done(function(){
$('img').load(function(){
//do something like show fadein etc...
});
}) ;
- 1. Ładowanie obrazu do FILESTREAM
- 2. Ponowne ładowanie obrazu w wpf
- 3. Zoptymalizowane ładowanie obrazu w UIScrollView
- 4. Ładowanie obrazu synchronicznie z Glide
- 5. Czy można przesłuchać ładowanie obrazu w SVG?
- 6. Wyświetl ładowanie obrazu podczas posta z ajaxem
- 7. Zapisywanie i ładowanie obrazu z localStorage
- 8. Ładowanie obrazu z pliku w wx.Panel
- 9. Wykryj, kiedy HTML zakończyło ładowanie i renderowanie na stronie
- 10. Wykryj, kiedy Gmail zakończył ładowanie za pomocą jQuery i GreaseMonkey
- 11. WYKRYJ Krawędź dokumentu w iPhoneSDK
- 12. Ładowanie obrazu do ImageSource - niepoprawna szerokość i wysokość
- 13. Ładowanie obrazu ze strumienia bez utrzymywania strumienia otwartego
- 14. Dopasowywanie i rozmiar obrazu, aby dopasować element div (ładowanie początkowe)
- 15. Zapisywanie i ładowanie obrazu do IsolatedStorage Wymaga zapisywania dwukrotnie
- 16. Ładowanie obrazu nie działa z IE 8 lub niżej
- 17. Ładowanie/Tworzenie obrazu w SharpDX w programie .NET
- 18. Ładowanie obrazu wC# z adresu URL strony internetowej
- 19. Ładowanie obrazu PictureBox z pliku zasobów ze ścieżką (część 3)
- 20. Ładowanie obrazu zakodowanego w Base64 w Cocos2d-x
- 21. Dynamiczne dodawanie i ładowanie obrazu z zasobów w języku C#
- 22. wykryj przestrzeń kolorów z openCV
- 23. Wykryj TestFlight?
- 24. Wykryj Eof dla obrazów JPG
- 25. Wykryj, który obraz jest ostrzejszy
- 26. Wykryj zdarzenie ładowania wielu obrazów
- 27. C# - Wykryj twarz i przyciąć obraz
- 28. Szyny 3: Leniwe ładowanie a chętne ładowanie
- 29. jak debugować ładowanie jądra i ładowanie wewnętrzne w wirtualnej skrzynce
- 30. Wykryj iPada z ASP.net
to możliwe, aby to zrobić: '$ ("# myImg") mieszka ("obciążenie", function() {// taniec});'” –
Niestety. , '.load()' jest przestarzałe od jQuery v1.8 – SquareCat
@ CummanderCheckov został przestarzały z powodu niejednoznaczności między programem obsługi zdarzeń a modułem ajax content W powyższym kodzie wystarczy zastąpić '.load (' z '.on ("load", "dla równoważnej funkcjonalności w wersji 1.7+." –