2013-04-01 2 views
1

스크롤하는 동안 배경 이미지를 변경하려고 애 쓰고 있습니다. 나는 유사한 질문에 게시 된 솔루션을 시도했지만 지금까지 아무런 운이 없다. 첫 번째 배경 이미지 만 표시 할 것이다.jQuery 스크롤하는 동안 배경 이미지 변경

기본적으로 배경은 고정 위치와 여러 div로 설정되어 있습니다. 각 div는 뷰포트의 크기이고 위쪽 가장자리는 뷰포트 높이의 크기입니다. 즉, 스크롤 할 때 사용자는 각 div를지나 스크롤 한 후에 만 ​​배경 이미지를 볼 수 있습니다. 그들이 각 div를 지나서 스크롤 한 후에 배경 이미지를 변경하고 싶습니다. 사전에

$(window).scroll(function() { 
    var windowY = $(window).height(); 
    var scrolledY = $(window).scrollTop(); 
    var image_url = '/images/image1.jpg'; 

    if (scrolledY > windowY) { 
     image_url = '/images/image2.jpg'; 
     } 

    $('body').css('background', "url(" + img_url + ")"); 

}); 

감사 :

여기에 코드입니다!

+0

귀하의 코드가 잘못되었습니다 당신의 배경 속성에 대한 호출, 그것은 잘못된 괄호가 있고 제대로 닫혀 있지, '배경'에 대한 값을 확인하십시오. – doublesharp

+0

스크롤 기능 내에 배경 변경을 넣거나 if 조건에서 호출하는 별도의 함수 이름을 지정하십시오. – Daniel

답변

0

두 개의 오타가 있었는데 괄호는 image_url 변수 이름이었습니다. 처음에 당신은 있었다 :

$(body).css('background', "url(" + img_url) + "'"; 

변경하려면 다음

$(body).css('background', "url(" + image_url + ")"); 

괄호가 잘못되었습니다 궁극적 그래서 당신의 최종 연결된 문자열했다. 또한 변수가 image_url으로 선언되었지만 css 함수에서 img_url을 사용했습니다.

+0

닫기 닫기 여전히 오른쪽 닫기가 필요합니다 :) – doublesharp

+0

lol 예! 업데이트되었습니다, 감사합니다. – Jace

+0

죄송합니다. 좋은 캐치, 고마워요! 불행히도 차이점을 보이지는 않지만 수정 된 코드는 여전히 작동하지 않습니다 :/ –

0

변경

$(window).scroll(function() { 
    var windowY = $(window).height(); 
    var scrolledY = $(window).scrollTop(); 
    var image_url = '/images/image1.jpg'; 

    if (scrolledY > windowY) { 
    image_url = '/images/image2.jpg'; 
    backgroundChange(image_url); 
    } 
}); 


function backgroundChange(img_url){ 
    $("body").css("background", "url(" + img_url + ")"); 
} 
+0

안타깝게도 그 중 아무 것도 안된다 –

+0

좋아, 그것은 어떤 이미지와도 통화 할 수 있도록 별도로 배치하는 것이 좋습니다. 함수를 $ (document) .ready (....) 외부에 배치하려고 시도 했습니까? 물론 항상 경로를 확인하십시오. 흔히 간단합니다. 코드를 두 번째 살펴 보면 제대로 작동합니다. 화재 경보기를 확인하십시오! – Daniel

+0

죄송합니다. Do $ ("body") ... – Daniel