CSS 배경 이미지 작업 사전 로더를 만드는 데 문제가 있습니다. 여기 상황은 다음과 같습니다. 몇 가지 숨겨진 요소가 있습니다. 각 요소에는 CSS 배경 이미지가 있습니다.CSS 배경 이미지 프리 로더
사용자가 "시작"버튼을 클릭하면 jquery를 사용하여 요소를 표시합니다 (하나씩 표시됨 : 다른 하나는 표시됨, 다른 하나는 숨김). 그러나 "시작"버튼은 모든 이미지가로드 된 후에 만 사용할 수 있어야합니다.
나는이 프리 로더를 사용하고 있습니다 : 그러나
function preloadimages(arr) {
var newimages=[], loadedimages=0
var postaction=function(){}
var arr=(typeof arr!="object")? [arr] : arr
function imageloadpost() {
loadedimages++
if (loadedimages == arr.length) {
postaction(newimages) //call postaction and pass in newimages array as parameter
}
}
for (var i=0; i<arr.length; i++) {
newimages[i] = new Image()
newimages[i].src = arr[i]
newimages[i].onload = function() {
imageloadpost()
}
newimages[i].onerror = function() {
imageloadpost()
}
}
return { //return blank object with done() method
done:function(f) {
postaction = f || postaction //remember user defined callback functions to be called when images load
}
}
}
preloadimages('img01','img02','img03')
.done(function(images) {
alert(images.length + " images loaded");
});
이, 만로드 한 이미지를.
결과가없는 다른 코드도 시도해 보았습니다. 이미지 프리 로더가 실제로 CSS 배경 이미지에서 작동해야합니까? 아니면 태그에 대해서만 의미가 있습니까?
좋은 것 같지만 작동하도록 할 수 없습니다. 아마 그것은 사용자가 무엇을하는지에 따라 요소를 표시하기 위해 여전히 javascript/jquery가 필요하기 때문일 수 있습니다. 어쨌든 .show()가 수행 된 후에 만 이미지가 계속로드됩니다. – DavidTonarini
여전히 정상적으로 작동해야하며, 요소를 표시하는 데 사용하는 방법과는 관련이 없습니다. 이미지는 실제로 완전히 별개의 요소 (의사 요소)에 실제로로드됩니다. jquery show() 또는 jquery addClass()를 사용하여 표시 할 요소에 클래스를 제공 한 다음 display : block; – DMTintner