[JQUERY] 배경 이미지가로드되었는지 어떻게 확인할 수 있나요?
JQUERY배경 이미지가로드되었는지 어떻게 확인할 수 있나요?
해결법
-
1.이 시도:
이 시도:
$('<img/>').attr('src', 'http://picture.de/image.png').on('load', function() { $(this).remove(); // prevent memory leaks as @benweet suggested $('body').css('background-image', 'url(http://picture.de/image.png)'); });
이것은 SRC가로드 될 때 감지하는 메모리 사용로드 이벤트에 새로운 이미지를 생성합니다.
-
2.나는 배경 이미지를 다운로드 한 경우 검색 할 수 있습니다라는 waitForImages을의 플러그인 jQuery를 가지고있다.
나는 배경 이미지를 다운로드 한 경우 검색 할 수 있습니다라는 waitForImages을의 플러그인 jQuery를 가지고있다.
$('body') .css('background-image','url(http://picture.de/image.png)') .waitForImages(function() { alert('Background image done loading'); // This *does* work }, $.noop, true);
-
3.이 같은:
이 같은:
var $div = $('div'), bg = $div.css('background-image'); if (bg) { var src = bg.replace(/(^url\()|(\)$|[\"\'])/g, ''), $img = $('<img>').attr('src', src).on('load', function() { // do something, maybe: $div.fadeIn(); }); } });
-
4.CSS 자산에 대한 JS 콜백이 없습니다.
CSS 자산에 대한 JS 콜백이 없습니다.
-
5.프리 로더를 추가합니다 순수 JS 솔루션은 배경 이미지를 설정하고 다음의 이벤트 리스너와 함께 가비지 컬렉션을 위해 설정 :
프리 로더를 추가합니다 순수 JS 솔루션은 배경 이미지를 설정하고 다음의 이벤트 리스너와 함께 가비지 컬렉션을 위해 설정 :
짧은 버전 :
CONST 이미지 URL = "https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"; bgElement = document.querySelector ( "몸")하자; preloaderImg = document.createElement ( "IMG")를 보자; preloaderImg.src = 이미지 URL; preloaderImg.addEventListener ( '부하'(이벤트) => { bgElement.style.backgroundImage =`URL ($ {이미지 URL})`; preloaderImg = NULL; });
A는 좋은 불투명도 전환과 더 비트 :
CONST 이미지 URL = "https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png"; 하자 bgElement = document.querySelector ( "BG-게으른."); bgElement.classList.add ( "BG 로딩"); preloaderImg = document.createElement ( "IMG")를 보자; preloaderImg.src = 이미지 URL; preloaderImg.addEventListener ( '부하'(이벤트) => { bgElement.classList.remove ( "BG 로딩"); bgElement.style.backgroundImage =`URL ($ {이미지 URL})`; preloaderImg = NULL; }); .bg - 게으른 { 높이 : 100vh; 폭 : 100vw; 전환 : 불투명도 1S는 쉽게 아웃; } .bg 로딩 { 불투명도 : 0; }
DIV>6.여기가 정확히이 일을, 그것도 여러 배경 이미지 및 여러 요소에서 작동 할 수 있도록 만든 작은 플러그인은 다음과 같습니다
여기가 정확히이 일을, 그것도 여러 배경 이미지 및 여러 요소에서 작동 할 수 있도록 만든 작은 플러그인은 다음과 같습니다
기사를 읽다:
http://catmull.uk/code-lab/background-image-loaded/
또는 플러그인 코드로 바로 이동 :
http://catmull.uk/downloads/bg-loaded/bg-loaded.js
그래서 그냥 요소를 호출 한 후 플러그인을 포함 :
<script type="text/javascript" src="http://catmull.uk/downloads/bg-loaded/bg-loaded.js"></script> <script type="text/javascript"> $('body').bgLoaded(); </script>
물론 플러그인을 다운로드하고는 자신의 호스팅에 저장합니다.
배경이로드하지만 당신은 쉽게 다음과 같이 그것을 다른 기능을 전달하여 그것을 변경할 수 있습니다 일단 기본적으로 각 일치하는 요소에 추가 "BG-로드"클래스를 추가합니다 :
<script type="text/javascript" src="http://catmull.uk/downloads/bg-loaded/bg-loaded.js"></script> <script type="text/javascript"> $('body').bgLoaded({ afterLoaded : function() { alert('Background image done loading'); } }); </script>
다음 작업을 보여주는 codepen이다.
http://codepen.io/catmull/pen/Lfcpb
7.나를 위해 좋은 일을하는 솔루션을 위치하고 있으며, 여러 이미지 (이 예에서는 도시되지 않은 경우)을 사용할 수 있다는 장점이있는 것.
나를 위해 좋은 일을하는 솔루션을 위치하고 있으며, 여러 이미지 (이 예에서는 도시되지 않은 경우)을 사용할 수 있다는 장점이있는 것.
이 질문에 adeneo의 대답 @에서 :
8.나는 순수 자바 스크립트는이 가능하게하는 해킹 않았다.
나는 순수 자바 스크립트는이 가능하게하는 해킹 않았다.
<div class="my_background_image" style="background-image: url(broken-image.jpg)"> <img class="image_error" src="broken-image.jpg" onerror="this.parentElement.style.display='none';"> </div>
또는
onerror="this.parentElement.backgroundImage = "url('image_placeHolder.png')";
CSS :
.image_error { display: none; }
9.https://github.com/alexanderdickson/waitForImages
https://github.com/alexanderdickson/waitForImages
$('selector').waitForImages({ finished: function() { // ... }, each: function() { // ... }, waitForAll: true });
10.다음은 간단한 바닐라 해킹은 ~입니다
다음은 간단한 바닐라 해킹은 ~입니다
(function(image){ image.onload = function(){ $(body).addClass('loaded-background'); alert('Background image done loading'); // TODO fancy fade-in }; image.src = "http://picture.de/image.png"; })(new Image());
from https://stackoverflow.com/questions/5057990/how-can-i-check-if-a-background-image-is-loaded by cc-by-sa and MIT license
'JQUERY' 카테고리의 다른 글
[JQUERY] 그것은 beforeunload 팝업에서 사용자 정의 메시지를 표시 할 수 있습니까? (0) 2020.09.30 [JQUERY] 형식 오류 : '정의되지 않은이'( ') $ (문서'를 평가) 함수 아니다 (0) 2020.09.30 [JQUERY] jQuery를 .ready에 동적으로 삽입은 iframe (0) 2020.09.30 [JQUERY] 전자 : jQuery를 정의하지 않습니다 (0) 2020.09.30 [JQUERY] 입력 텍스트 상자에 값을 가져옵니다 (0) 2020.09.30