[JQUERY] 공식 방법은 무엇인가를 실행하기 전에 부하에 모든 이미지의 jQuery 대기를 물어
JQUERY공식 방법은 무엇인가를 실행하기 전에 부하에 모든 이미지의 jQuery 대기를 물어
해결법
-
1.DOM을로드하고 $ (창) CSTE 연구진 ( "로드", 핸들러가) 다른 모든 것들뿐만 아니라로드 할 때 뭔가를 실행하면 jQuery를, 당신은 같은으로 뭔가를 실행 .ready $ (문서) ()를 사용 이미지.
DOM을로드하고 $ (창) CSTE 연구진 ( "로드", 핸들러가) 다른 모든 것들뿐만 아니라로드 할 때 뭔가를 실행하면 jQuery를, 당신은 같은으로 뭔가를 실행 .ready $ (문서) ()를 사용 이미지.
차이점은 당신이 jollyroger JPEG 파일 (또는 기타 적합한 사람)가 제공 다음과 같은 완전한 HTML 파일에서 볼 수있다 :
<html> <head> <script src="jquery-1.7.1.js"></script> <script type="text/javascript"> $(document).ready(function() { alert ("done"); }); </script> </head><body> Hello <img src="jollyroger00.jpg"> <img src="jollyroger01.jpg"> // : 100 copies of this <img src="jollyroger99.jpg"> </body> </html>
이미지를로드하기 전에 DOM은 그 시점에서 준비가되어 있기 때문에두고, 경고 상자가 나타납니다. 당신이 다음 변경할 경우 :
$(document).ready(function() {
으로:
$(window).on("load", function() {
다음 경고 상자는 이미지를로드 할 때까지 나타나지 않습니다.
전체 페이지가 준비 될 때까지 따라서, 당신은 같은 것을 사용할 수, 대기 :
$(window).on("load", function() { // weave your magic here. });
-
2.나는 이미지를로드 한 번씩 이미지 요소에로드, 화재 때 콜백을 발사 할 수있는 플러그인을 썼다.
나는 이미지를로드 한 번씩 이미지 요소에로드, 화재 때 콜백을 발사 할 수있는 플러그인을 썼다.
그것은 $ (창) .load 유사하다 (함수 () {...}), 당신이 어떤 선택을 확인하기 위해 정의 할 수 있습니다 제외. 당신은 단지 #content의 모든 이미지 (예를 들어)로드 때 알고 싶은 경우에, 이것은 당신을위한 플러그인입니다.
또한 등 배경 이미지, 목록 - 스타일 이미지와 CSS에서 참조 이미지의 로딩을 지원합니다
$('selector').waitForImages(function() { alert('All images are loaded.'); });
jsFiddle에 예.
더 많은 문서는 GitHub의 페이지를 볼 수 있습니다.
-
3.$ (창) .load ()는 페이지가로드 처음에만 작동합니다. 동적 물건을 수행하는 경우 (예 : 클릭 버튼, 부하에 몇 가지 새로운 이미지에 대한 대기)이 작동하지 않습니다. 그것을 달성하기 위해, 당신은 내 플러그인을 사용할 수 있습니다 :
$ (창) .load ()는 페이지가로드 처음에만 작동합니다. 동적 물건을 수행하는 경우 (예 : 클릭 버튼, 부하에 몇 가지 새로운 이미지에 대한 대기)이 작동하지 않습니다. 그것을 달성하기 위해, 당신은 내 플러그인을 사용할 수 있습니다 :
데모
다운로드
/** * Plugin which is applied on a list of img objects and calls * the specified callback function, only when all of them are loaded (or errored). * @author: H. Yankov (hristo.yankov at gmail dot com) * @version: 1.0.0 (Feb/22/2010) * http://yankov.us */ (function($) { $.fn.batchImageLoad = function(options) { var images = $(this); var originalTotalImagesCount = images.size(); var totalImagesCount = originalTotalImagesCount; var elementsLoaded = 0; // Init $.fn.batchImageLoad.defaults = { loadingCompleteCallback: null, imageLoadedCallback: null } var opts = $.extend({}, $.fn.batchImageLoad.defaults, options); // Start images.each(function() { // The image has already been loaded (cached) if ($(this)[0].complete) { totalImagesCount--; if (opts.imageLoadedCallback) opts.imageLoadedCallback(elementsLoaded, originalTotalImagesCount); // The image is loading, so attach the listener } else { $(this).load(function() { elementsLoaded++; if (opts.imageLoadedCallback) opts.imageLoadedCallback(elementsLoaded, originalTotalImagesCount); // An image has been loaded if (elementsLoaded >= totalImagesCount) if (opts.loadingCompleteCallback) opts.loadingCompleteCallback(); }); $(this).error(function() { elementsLoaded++; if (opts.imageLoadedCallback) opts.imageLoadedCallback(elementsLoaded, originalTotalImagesCount); // The image has errored if (elementsLoaded >= totalImagesCount) if (opts.loadingCompleteCallback) opts.loadingCompleteCallback(); }); } }); // There are no unloaded images if (totalImagesCount <= 0) if (opts.loadingCompleteCallback) opts.loadingCompleteCallback(); }; })(jQuery);
-
4.$ (창) 후 요청됩니다 하나의 이미지의 다운로드 완료 통지 화재를 .load 싶은 분들을 위해, 당신은 이미지 요소의로드 이벤트를 사용할 수 있습니다.
$ (창) 후 요청됩니다 하나의 이미지의 다운로드 완료 통지 화재를 .load 싶은 분들을 위해, 당신은 이미지 요소의로드 이벤트를 사용할 수 있습니다.
예 :. :
// create a dialog box with an embedded image var $dialog = $("<div><img src='" + img_url + "' /></div>"); // get the image element (as a jQuery object) var $imgElement = $dialog.find("img"); // wait for the image to load $imgElement.load(function() { alert("The image has loaded; width: " + $imgElement.width() + "px"); });
-
5.답변 중에 지금까지 가장 간단한 솔루션으로 보이는 주어지지했다.
답변 중에 지금까지 가장 간단한 솔루션으로 보이는 주어지지했다.
$('#image_id').load( function () { //code here });
-
6.나는 imagesLoaded.js 자바 스크립트 라이브러리를 사용하는 것이 좋습니다.
나는 imagesLoaded.js 자바 스크립트 라이브러리를 사용하는 것이 좋습니다.
https://stackoverflow.com/questions/26927575/why-use-imagesloaded-javascript-library-versus-jquerys-window-load/26929951에 ansered으로
-
7.jQuery를 함께 나는이와 함께 ...
jQuery를 함께 나는이와 함께 ...
$(function() { var $img = $('img'), totalImg = $img.length; var waitImgDone = function() { totalImg--; if (!totalImg) alert("Images loaded!"); }; $('img').each(function() { $(this) .load(waitImgDone) .error(waitImgDone); }); });
데모 : http://jsfiddle.net/molokoloco/NWjDb/
-
8.신체 또는 기타 용기 (즉, 선택의 따라 다름) 내부의 모든 이미지를로드 할 때이 작업을 실행할 수있는이 방법. PURE JQUERY, 더 pluggins는 필요하지 않습니다.
신체 또는 기타 용기 (즉, 선택의 따라 다름) 내부의 모든 이미지를로드 할 때이 작업을 실행할 수있는이 방법. PURE JQUERY, 더 pluggins는 필요하지 않습니다.
var counter = 0; var size = $('img').length; $("img").load(function() { // many or just one image(w) inside body or any other container counter += 1; counter === size && $('body').css('background-color', '#fffaaa'); // any action }).each(function() { this.complete && $(this).load(); });
-
9.사용 imagesLoaded 포장 된 v3.1.8 (6.8 이하 최소화). 그것은 (2010) 상대적으로 오래된하지만 여전히 활성 프로젝트입니다.
사용 imagesLoaded 포장 된 v3.1.8 (6.8 이하 최소화). 그것은 (2010) 상대적으로 오래된하지만 여전히 활성 프로젝트입니다.
당신은 GitHub의에서 찾을 수 있습니다 : https://github.com/desandro/imagesloaded
그들의 공식 사이트 : http://imagesloaded.desandro.com/
왜 사용하는 것보다 낫다 :
$(window).load()
jsfiddle :이 같은 동적 이미지를로드 할 수 있기 때문에
$('#button').click(function(){ $('#image').attr('src', '...'); });
-
10.내 솔루션 molokoloco 유사하다. jQuery를 함수로 글 :
내 솔루션 molokoloco 유사하다. jQuery를 함수로 글 :
$.fn.waitForImages = function (callback) { var $img = $('img', this), totalImg = $img.length; var waitImgLoad = function () { totalImg--; if (!totalImg) { callback(); } }; $img.each(function () { if (this.complete) { waitImgLoad(); } }) $img.load(waitImgLoad) .error(waitImgLoad); };
예:
<div> <img src="img1.png"/> <img src="img2.png"/> </div> <script> $('div').waitForImages(function () { console.log('img loaded'); }); </script>
from https://stackoverflow.com/questions/544993/official-way-to-ask-jquery-wait-for-all-images-to-load-before-executing-somethin by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] 사용자가 입력을 멈출 때까지 어떻게 .keyup () 핸들러를 지연? (0) | 2020.09.25 |
---|---|
[JQUERY] 어떻게 jQuery를 / 자바 스크립트로 JSON 데이터를 구문 분석? (0) | 2020.09.25 |
[JQUERY] (이 바인딩 어휘) ES6 화살표 기능의 jQuery $ (이)를 사용하여 (0) | 2020.09.25 |
[JQUERY] 어떻게 POST는 jQuery를하지 않고 $ HTTP와 폼 데이터를 urlencoded를합니까? (0) | 2020.09.25 |
[JQUERY] jQuery를 검증 플러그인 - 어떻게 간단한 사용자 지정 규칙을 만드는 방법? (0) | 2020.09.25 |