Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Изменение цвета элемента (https://javascript.ru/forum/misc/48960-izmenenie-cveta-ehlementa.html)

donbarton639 23.07.2014 15:49

Изменение цвета элемента
 
Здравствуйте, я создал статическое меню для своего сайта т.е оно и все элементы внутри зафиксированы. Но теперь я хочу создать более наглядную навигацию, что-бы элементы меню выделялись если я нахожусь в этом диапазоне. Суть в том, что этот скрипт работает только частично т.е он меняет цвет бэкграунда элемента, но не меняет цвет самого текста.

<script>
var sm_block1 = "#block-new328";
var sm_block2 = "#block-new330";
var sm_block3 = "#block-new332";
var sm_block4 = "#block-new334";
var sm_block5 = "#block-new336";
var sm_block7 = "#block-new338";
var sm_block6 = "#block-new340";

$(window).scroll(function () {
  if (($(this).scrollTop() > 0) && ($(this).scrollTop() < 919)) {
    $(sm_block1).css({'background-color': '#F5F5F5', 'color': '#000000'});
    $(sm_block2).css({'background-color': 'none', 'color': '#FFFFFF'});   
    $(sm_block3).css({'background-color': 'none', 'color': '#FFFFFF'});   
    $(sm_block4).css({'background-color': 'none', 'color': '#FFFFFF'});   
    $(sm_block5).css({'background-color': 'none', 'color': '#FFFFFF'});   
    $(sm_block7).css({'background-color': 'none', 'color': '#FFFFFF'});   
    $(sm_block6).css({'background-color': 'none', 'color': '#FFFFFF'});   
  } 
  if (($(this).scrollTop()> 0) && ($(this).scrollTop() < 3831)) {
    $(sm_block1).css({'background-color': '', 'color': '#FFFFFF'});   
    $(sm_block2).css({'background-color': '#F5F5F5', 'color': '#000000'});  
    $(sm_block3).css({'background-color': 'none', 'color': '#FFFFFF'});   
    $(sm_block4).css({'background-color': 'none', 'color': '#FFFFFF'});   
    $(sm_block5).css({'background-color': 'none', 'color': '#FFFFFF'});   
    $(sm_block7).css({'background-color': 'none', 'color': '#FFFFFF'});   
    $(sm_block6).css({'background-color': 'none', 'color': '#FFFFFF'});   
  }
});
</script>

donbarton639 24.07.2014 00:10

Поднимаю вопрос.

Aetae 24.07.2014 00:22

donbarton639, диапазон кривой?:
if (($(this).scrollTop() > 0) && ($(this).scrollTop() < 919)) {
  //..
if (($(this).scrollTop()> 0) && ($(this).scrollTop() < 3831)) {
=>
if (($(this).scrollTop() > 0) && ($(this).scrollTop() < 919)) {
  //..
if (($(this).scrollTop()>= 919) && ($(this).scrollTop() < 3831)) {

donbarton639 24.07.2014 12:19

Я же говорю, что скрипт работает! Задний фон меняется а сам цвет нет. Если что я использую конструктор сайтов lpgenerator. т.е там по умолчанию стоит цвет, может в этом дело?

рони 24.07.2014 12:51

donbarton639,
если в css прописан color для элементов внутри блока -- естественно это имеет приоритет над color самого блока -- меняйте цвет самим элементам
$(sm_block2).css({'background-color': 'none'}).find('*').css({'color': '#FFFFFF'});


Часовой пояс GMT +3, время: 10:36.