2013-04-26 2 views
0

Я делаю сайт с парой divs под друг друга и меню, которое прилипает к вершине. Когда вы достигнете нового 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 не запускается на определенное количество пикселей, оно начинается после 100% высоты экрана. Итак, как я могу использовать% вместо пикселей в этом javascript? – 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 noob здесь, как вы можете сказать. ;) – JamesM

+0

Откройте свой firebug/chromebug ... (Если вы его установили, он обычно привязан к F12), и проверьте консоль javascript, чтобы увидеть, что пошло не так :) –

+0

Удивительно, что последний работает! Благодаря! – JamesM

Смежные вопросы