2013-04-26 2 views
0

저는 서로 아래에있는 몇 개의 div와 상단에 붙어있는 메뉴로 웹 사이트를 만들고 있습니다. 새 div에 도달하면 메뉴의 배경색을 변경하고 싶습니다. 이미이 스크립트가 있습니다.div의 배경색을 높이의 백분율로 변경하십시오.

$(document).ready(function(){ 
    var scroll_pos = 0; 
    $(document).scroll(function() { 
    scroll_pos = $(this).scrollTop(); 
    if(scroll_pos > 2280) { 
     $("#menu").css('background-color', '#6FC6DF'); 
    } else { 
     $("#menu").css('background-color', '#B4B4B4'); 
    } 
    } 
); 
$(document).scroll(function() { 
    scroll_pos = $(this).scrollTop(); 
    if(scroll_pos > 3220) { 
    $("#menu").css('background-color', '#B4B4B4'); 
    } 
}); 

괜찮 았지만 디자인이 반응적 이도록 만들려고 했으므로 배경색을 웹 사이트의 일정 비율로 변경하고 싶습니다. 그게 가능하니?

감사합니다.

+0

두 번째 DIV가 시작되지 않습니다 : 당신은 또한 당신이 :)

을 표시 할 아니면 퍼센트에 따라 변경하려면 16 진수 값으로 비율을 매핑하는 기능을 구현할 수 있습니다 특정 픽셀 수는 화면 높이의 100 % 이후에 시작됩니다. 그렇다면 어떻게 자바 스크립트에서 픽셀 대신 %를 사용합니까? – JamesM

답변

1
$(document).scroll(function() { 
    var scroll_pos=$(document).scrollTop(); 
    var docHeight=$(document).height(); 
    var percent=(scroll_pos/docHeight); 
    var red=Math.round(255*percent); 
    $("body").css('background-color', 'rgba('+red+',0,0,1)'); 
} 
); 

예를 들어 문서를 더 적게 만들려면 아래쪽으로 스크롤합니다.

$(document).scroll(function() { 
    var scroll_pos=$(document).scrollTop(); 
    var docHeight=$(document).height(); 
    var percent=Math.round((scroll_pos/docHeight)*100); 
    if (percent>33) 
     $("#menu").css('background-color', '#ff0000'); 
} 
); 
+0

나는 그것을 시도했지만 작동하지 않았다. 스크립트가 작동하도록 변경해야하는 것이 있는가? Javascript 멍청한 놈. ;) – JamesM

+0

firebug/chromebug를 연다. (설치했다면 보통 F12에 묶여있다.) 무엇이 잘못되었는지 보려면 javascript 콘솔을 확인한다. :) –

+0

굉장하다. 감사! – JamesM

관련 문제