웹 사이트에 표시 할 이미지가 많습니다.jQuery 다양한 수준의 이미지로드
나는 각기 다른 화질의 이미지를 가지고 있습니다. 나는 엄지 (~ 10kb), 소형 (~ 200kb), 중형 (~ 1.2mb) 및 대형 (~ 2.5mb)을 가지고 있습니다. 내가 뭘 원하는 엄지 이미지를 표시하고 자바 스크립트를로드하고 작은 그것을로드 할 때 그것을 교체하고 다음 매체를로드하고 등등 교체하십시오. 그렇게하면 이미지가 곧바로 나타나 더 나은 품질을 얻을 수 있습니다.
이미지가 div의 배경으로 표시되고 크기가 포함 된 것으로 설정되어 있기 때문에 작은 이미지가 공간을 채우도록 늘어납니다.
모두 나는 이미지를로드하고로드되었을 때 배경을 대체 할 jQuery가 필요하다.
UPDATE
이것은 내가 그것을 해결 한 방법이다. 나는 각각의 이미지를로드하고 완료되면 표시되는 숨겨진 img 요소를 만들었습니다. 그러나 나는 그것을 깨끗이하는 데 도움을 줄 것이라고 말하지 않을 것입니다.
은 HTML은
<img id="image_loader" style="display:none;" />
입니다 그리고 jQuery를이
$("#image_loader").attr("src", SmallURL);
$("#image_loader").load(function() {
$("#image_container").css("background-image", 'url('+SmallURL+')');
$("#image_loader").attr("src", MedURL);
$("#image_loader").load(function() {
$("#image_container").css("background-image", 'url('+MedURL+')');
$("#image_loader").attr("src", LargeURL);
$("#image_loader").load(function() {
$("#image_container").css("background-image", 'url('+LargeURL+')');
$("#image_loader").unbind('load');
});
});
});
입니다하지만이 끔찍하게 지저분하다. 배열에 URL을 넣고 시도했는데 $.each
을 수행했지만 큰 파일 만 건너 뜁니다.
두 번째 업데이트는
나는 또한 한 번에 모든 이미지가로드되었던로드 기능을 바인딩을 해제 할 필요하거나이 무한 루프에 갇혀 얻을 것이라는 점을 발견했습니다. 바라기를 바꿔서 이것을 정리할 수 있다면 무한 루프가 생기지 않도록 할 수 있습니다.
어떻게하면이 문제를 해결할 수 있습니까?
고마워요. 그게 제가 직접 한 일입니다. 나는 문제를 해결했는데 지금은 효과가있다.하지만 내가 해낸 방식이 어수선 해 보인다. 질문에 추가 한 코드를 정리하는 방법을 제안 할 수 있습니까? –
나는 나의 대답을 업데이트했다. 다른 답변과는 다르지만 여전히 완벽하지는 않다. 로드 이벤트가 지속적으로 트리거되면서 코드가 무한 루프를 일으켰습니다! – loxdog
예 그 문제를 발견하고 끝에 바인딩 해제를 사용하여 해결했습니다. 이제 코드를 살펴 보겠습니다. –