2012-02-21 3 views
3

div가 현재 none으로 표시되도록 설정되어 있습니다. Div에는 5000px 너비의 배경 이미지가 2000px 높이 있습니다.jQuery로 배경 이미지를 미리로드 하시겠습니까?

버튼을 클릭하면 div 표시 attirbute가 jquery로 전환됩니다. 이미지가 너무 커서 div로드가 발생하고 이미지가 1/2 초 후에로드됩니다. 이미지가 준비 될 때까지 프리 로더를 표시하고 표시 할 수있는 함수가 있습니까?

감사

답변

1

봅니다 이미지를 미리로드하는 기본 자바 스크립트의 Image 객체를 사용합니다.

또한 예를 들어 타일을 만들어 웹상에서 이러한 거대한 이미지를 사용하지 않는 것을 고려하십시오.

4

이 질문에 그냥 아주 쉽게 시나리오에 적용 할 수 있습니다 자바 스크립트 있지만, 바닐라를 사용하여 다시 잠시을 게시 대답했다.

Preloading CSS Images

$(document).ready(function() { 

    var c = new Image(); 

    c.onload = function(){ 
     $("#Your Div ID").css("background-image", "url(Path to Background Image)"); 
    } 

    c.src = "Path to Background Image"; 

}); 
+0

당신이 정확히 저스틴을 어떻게 작동하는지 설명 할 수 있습니까? – Liam

+1

이미지가로드 될 때 이벤트 처리기를 생성하면 이미지가 div로 배경으로 적용됩니다. 귀하의 경우, 먼저 프리 로더를 표시 할 기능으로 만들고, 위의 코드를 실행하여 이미지가 사용 가능할 때 표시하고 프리 로더를 숨길 수 있습니다. 이미지 개체에 대한 자세한 내용은 다음을 참조하십시오. http://www.w3schools.com/jsref/dom_obj_image.asp – JustinW

관련 문제