[JQUERY] 자바 스크립트를 통해 이미지를로드하는 동안 스피너를 표시하는 방법
JQUERY자바 스크립트를 통해 이미지를로드하는 동안 스피너를 표시하는 방법
해결법
-
1.나는 이미지를 미리로드 같은 것을 사용하고 이미지가 완성 로딩 될 때 자동으로 내 자바 스크립트로 다시 전화했습니다. 당신은 이미지가 이미 캐시 할 수 있으므로 설치 전에 콜백을 완료 확인하고 싶은 당신의 콜백을 호출 할 수 있습니다.
나는 이미지를 미리로드 같은 것을 사용하고 이미지가 완성 로딩 될 때 자동으로 내 자바 스크립트로 다시 전화했습니다. 당신은 이미지가 이미 캐시 할 수 있으므로 설치 전에 콜백을 완료 확인하고 싶은 당신의 콜백을 호출 할 수 있습니다.
function PreloadImage(imgSrc, callback){ var objImagePreloader = new Image(); objImagePreloader.src = imgSrc; if(objImagePreloader.complete){ callback(); objImagePreloader.onload=function(){}; } else{ objImagePreloader.onload = function() { callback(); // clear onLoad, IE behaves irratically with animated gifs otherwise objImagePreloader.onload=function(){}; } } }
-
2.이러한처럼 회전 바퀴의 착시를 제공하는 정적 이미지를 보여줄 수 있습니다.
이러한처럼 회전 바퀴의 착시를 제공하는 정적 이미지를 보여줄 수 있습니다.
-
3.jQuery를의 load () 메서드를 사용하면, 즉시 이미지가로드로 뭔가를 쉽게 할 수있다 :
jQuery를의 load () 메서드를 사용하면, 즉시 이미지가로드로 뭔가를 쉽게 할 수있다 :
$('img.example').load(function() { $('#spinner').fadeOut(); });
참조 : http://api.jquery.com/load-event/
-
4.에서는 setTimeout () 함수 (상세 정보)의 전력 사용 - (. 비동기)이 당신이 미래의 함수 호출을 트리거 타이머를 설정할 수 있으며, 그것을 호출하면 현재 / 기타 기능의 실행을 차단하지 않습니다를.
에서는 setTimeout () 함수 (상세 정보)의 전력 사용 - (. 비동기)이 당신이 미래의 함수 호출을 트리거 타이머를 설정할 수 있으며, 그것을 호출하면 현재 / 기타 기능의 실행을 차단하지 않습니다를.
none으로 그것의 CSS 표시 속성 세트로 차트 이미지 위의 회 전자를 포함하는 사업부를 위치 :
<div> <img src="spinner.gif" id="spinnerImg" style="display: none;" /></div>
는 회가 숨겨져있는 경우 붕괴 사업부를 중지 NBSP. 당신은 회 전자의 표시를 전환 할 때없이, 레이아웃은 "트"합니다
function chartOnClick() { //How long to show the spinner for in ms (eg 3 seconds) var spinnerShowTime = 3000 //Show the spinner document.getElementById('spinnerImg').style.display = ""; //Change the chart src document.getElementById('chart').src = '/charts/10.png'; //Set the timeout on the spinner setTimeout("hideSpinner()", spinnerShowTime); } function hideSpinner() { document.getElementById('spinnerImg').style.display = "none"; }
-
5.사용 CSS는 이미지의 컨테이너의 중심 배경 이미지로 로딩 애니메이션을 설정합니다.
사용 CSS는 이미지의 컨테이너의 중심 배경 이미지로 로딩 애니메이션을 설정합니다.
새로운 큰 이미지를로드 할 때 그리고, 사전로드 된 제 1 투명 픽셀 GIF에 SRC 세트.
EG
document.getElementById('mainimg').src = '/images/1pix.gif'; document.getElementById('mainimg').src = '/images/large_image.jpg';
large_image.jpg로드하는 동안, 배경은 1pix 투명 GIF를 통해 표시됩니다.
-
6.에드의 대답에 구축, 내가 좋아하는 무언가를보고하는 것을 선호합니다 :
에드의 대답에 구축, 내가 좋아하는 무언가를보고하는 것을 선호합니다 :
function PreLoadImage( srcURL, callback, errorCallback ) { var thePic = new Image(); thePic.onload = function() { callback(); thePic.onload = function(){}; } thePic.onerror = function() { errorCallback(); } thePic.src = srcURL; }
콜백은 적절한 위치에 이미지를 표시 및 / 스피너의 숨기기를 폐기하고, errorCallback은 "beachballing"에서 페이지를 방지 할 수 있습니다. 모든 이벤트는, 어떤 타이머 또는 폴링을 구동하지, 플러스 당신은 당신이 어디 이벤트를 설정하는 동안 문이 이미지가 완성 된 경우로드를 확인하는 경우 추가를 추가 할 필요가 없습니다 - 그들은 사전에 설정하고 있기 때문에 그들은 상관없이 어떻게 실행할 것 신속하게 이미지를로드합니다.
-
7.내가 jQuery 플러그인을 작성했습니다 몇 년 전에있는 자동 스피너를 표시 핸들 http://denysonique.github.com/imgPreload/
내가 jQuery 플러그인을 작성했습니다 몇 년 전에있는 자동 스피너를 표시 핸들 http://denysonique.github.com/imgPreload/
소스 코드에서 찾고 스피너를 표시 할 때 감지와 함께로드 된 이미지의 중앙에 표시와 함께 당신을 도울 것이다.
-
8.@의 duddle의 JQuery와 방법 등의 I하지만 부하를 찾을 수는 () 항상 (예 : 이미지가 IE에서 캐시에서 검색 할 때로) 호출되지 않습니다. 내가 대신이 버전을 사용합니다 :
@의 duddle의 JQuery와 방법 등의 I하지만 부하를 찾을 수는 () 항상 (예 : 이미지가 IE에서 캐시에서 검색 할 때로) 호출되지 않습니다. 내가 대신이 버전을 사용합니다 :
$('img.example').one('load', function() { $('#spinner').remove(); }).each(function() { if(this.complete) { $(this).trigger('load'); } });
이 호출은 최대 한 시간을로드하고 즉시 이미로드가 완료입니다.
-
9.당신이 제대로 중심을 상대 위치를 사용할 수 있도록 당신은 높이와 너비를 알고, 차트로 사업부에 같은 크기를 스피너를 넣어.
당신이 제대로 중심을 상대 위치를 사용할 수 있도록 당신은 높이와 너비를 알고, 차트로 사업부에 같은 크기를 스피너를 넣어.
-
10.이외에도 lowsrc 옵션에서, 나는 또한 IMG의 컨테이너에 배경 이미지를 사용했습니다.
이외에도 lowsrc 옵션에서, 나는 또한 IMG의 컨테이너에 배경 이미지를 사용했습니다.
-
11.이미지 SRC는 (HTTP 404 오류)가 존재하지 않는 경우 콜백 함수라고도주의하십시오. 이를 방지하기 위해 이미지의 폭을 확인할 수 있습니다, 같은 :
이미지 SRC는 (HTTP 404 오류)가 존재하지 않는 경우 콜백 함수라고도주의하십시오. 이를 방지하기 위해 이미지의 폭을 확인할 수 있습니다, 같은 :
if(this.width == 0) return false;
-
12.@ 이안의 솔루션은 나에게 좋은 보인다. 유일한 것은 내가 변화 대신의 setTimeout을 사용하여, 나는 시도하고 이미지 '로드'이벤트에 후크 것입니다 것입니다. 이미지를 다운로드하는 데 시간이 더 삼초보다 오래 걸리는 경우이 방법은, 당신은 여전히 스피너를 얻을 수 있습니다.
@ 이안의 솔루션은 나에게 좋은 보인다. 유일한 것은 내가 변화 대신의 setTimeout을 사용하여, 나는 시도하고 이미지 '로드'이벤트에 후크 것입니다 것입니다. 이미지를 다운로드하는 데 시간이 더 삼초보다 오래 걸리는 경우이 방법은, 당신은 여전히 스피너를 얻을 수 있습니다.
이 다운로드에 시간이 덜 걸리는 경우 반면에, 당신은 3 초 미만의 스피너를 얻을 수 있습니다.
-
13.나는 브라우저 캐시를 방지하기 위해 어떤 임의의 숫자를 추가합니다.
나는 브라우저 캐시를 방지하기 위해 어떤 임의의 숫자를 추가합니다.
from https://stackoverflow.com/questions/51352/how-to-show-a-spinner-while-loading-an-image-via-javascript by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] 효과가 완료 될 때까지 얼마나 대기에 jQuery를 얻으려면? (0) | 2020.10.29 |
---|---|
[JQUERY] BR에 jQuery를 변환 줄 바꿈 (nl2br에 해당) (0) | 2020.10.29 |
[JQUERY] 자바 스크립트와 일반 텍스트 선택 (0) | 2020.10.29 |
[JQUERY] Base64로 이미지 변환 (0) | 2020.10.29 |
[JQUERY] 요소 jQuery를 함께 표시되는 경우 감지 [중복] (0) | 2020.10.29 |