2012-03-27 2 views
0

빈 div가로드 된 후 (빈 div에 큰 배경 이미지가 있음) 내 메뉴 표시 줄이 희미 해지고 있습니다. 이미지를로드하려면 두 번째 또는 두 번째가 필요하므로 이미지 (div)가로드 된 후에 페이드 인하는 메뉴가 필요합니다. 여기 다른 Div가로드 된 후에 Divine이 적용된 후

내 jQuery의 : (. 문서 .ready 적절한 효과를 제공하지 않습니다)

$(.top-bg).ready(function() { 
    $(".top-bar").fadeIn(1000); 
}); 

답변

1

같은 것을 시도 확인해야한다고 생각.

대신 메모리 내 이미지 요소를 만들고 해당 소스를 배경 이미지의 원본으로 설정하십시오.
다음은 img의로드 이벤트에 기능을 첨부 할 수 있습니다 :이 시도하지 http://jsfiddle.net/BPeG2/

+0

그것은 작동하지 않습니다 ...하지만 뭔가 잘못하고있을 수 있습니다. – Connor

+0

그것은 나를 위해 작동합니다 : http://jsfiddle.net/BPeG2/ –

+0

@Connor -이 모든 것을'$ (document) .ready()'에 넣어야합니다. 나는 그것을 내 대답에 덧붙였다. –

1

당신이 사업부에 직접 연결된로드 이벤트를 기다릴 수 없어 : 대신를로드한다 domready 이벤트에서 이미지를 만든 다음 div 자체를 페이드 인합니다. 또한 이미지가 complete 상태에있는 경우 (이미 캐시 된 경우)

당신은 그 div에서 직접 할 수 없어

$(function() { // on dom ready event 

    var div = $(".top-bar"), 
     src = "url-to-your-image", 
     tmp = $('<img />'); 

    tmp.one('load', function() { div.fadeIn(1000) }) /* one: it need to be 
                 executed one time only */ 
     .attr('src', src); 

    if (tmp.get(0).complete) { 
     tmp.trigger('load'); 
    } 
}); 
+0

운 ... 내가해야합니까 어딘가에 이미지 소스를 넣으시겠습니까? – Connor

+0

.css (background-image)는 url (...)도 반환합니다. 대신에 이미지에 URL을 쓰려고 시도하십시오 – fcalderan

1

: 여기

$(document).ready(function($) { 
    var img = new Image(); 
    img.src = $('.top-bg').css('background-image').replace(/url\(|\)/g, ''); 

    img.onload = function(){ 
     $(".top-bar").fadeIn(1000); 
    }; 
}); 

는 바이올린의

$(document).ready(function($) { 

    var tmp = $('<img src="relative_path_to_image" />'); 

    tmp.load(function() { 
     $(".top-bar").fadeIn(1000); 
     tmp.remove(); 
    }); 
}); 
관련 문제