복붙노트

[JQUERY] 공식 방법은 무엇인가를 실행하기 전에 부하에 모든 이미지의 jQuery 대기를 물어

JQUERY

공식 방법은 무엇인가를 실행하기 전에 부하에 모든 이미지의 jQuery 대기를 물어

해결법


  1. 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. 2.나는 이미지를로드 한 번씩 이미지 요소에로드, 화재 때 콜백을 발사 할 수있는 플러그인을 썼다.

    나는 이미지를로드 한 번씩 이미지 요소에로드, 화재 때 콜백을 발사 할 수있는 플러그인을 썼다.

    그것은 $ (창) .load 유사하다 (함수 () {...}), 당신이 어떤 선택을 확인하기 위해 정의 할 수 있습니다 제외. 당신은 단지 #content의 모든 이미지 (예를 들어)로드 때 알고 싶은 경우에, 이것은 당신을위한 플러그인입니다.

    또한 등 배경 이미지, 목록 - 스타일 이미지와 CSS에서 참조 이미지의 로딩을 지원합니다

    $('selector').waitForImages(function() {
        alert('All images are loaded.');
    });
    

    jsFiddle에 예.

    더 많은 문서는 GitHub의 페이지를 볼 수 있습니다.


  3. 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. 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. 5.답변 중에 지금까지 가장 간단한 솔루션으로 보이는 주어지지했다.

    답변 중에 지금까지 가장 간단한 솔루션으로 보이는 주어지지했다.

    $('#image_id').load(
      function () {
        //code here
    });
    

  6. 6.나는 imagesLoaded.js 자바 스크립트 라이브러리를 사용하는 것이 좋습니다.

    나는 imagesLoaded.js 자바 스크립트 라이브러리를 사용하는 것이 좋습니다.

    https://stackoverflow.com/questions/26927575/why-use-imagesloaded-javascript-library-versus-jquerys-window-load/26929951에 ansered으로


  7. 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. 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. 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. 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>
    
  11. 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