2016-09-15 4 views
0

У меня проблема с анимацией в липком меню. CSS изменен, но не с переходом. У кого-нибудь есть идея, почему?css переход в липкое меню не работает

$(window).scroll(function() { 
    if ($(this).scrollTop() > 50) { 
     $('.navbar-fixed-top').addClass("navbar-fixed-top-sticky"); 
    } else { 
     $('.navbar-fixed-top').removeClass("navbar-fixed-top-sticky"); 
    } 
}); 

И CSS:

.navbar-fixed-top { 
    transition: 0.3 all ease; 
    -webkit-transition: 0.3 all ease; 
} 
.navbar-fixed-top.navbar-fixed-top-sticky { 
    background: #601a36; 
    height: 80px; 
    transition: 0.3 all ease-in-out; 
    -webkit-transition: 0.3 all ease-in-out; 
} 
+0

Какой переход не работает? Вы не можете перейти от 'auto' ... или от значения, которое не указано, –

+0

Вы должны хотя бы добавить примечание, почему вы не отвечаете на вопросы! @Neuropeptidula – eisbehr

ответ

-1

Причина у вас нет перехода происходит потому, что вы не имеете начальное свойство, определенное для того, чтобы перейти к. Попробуй это.

.navbar-fixed-top { 
    transition: 0.3s all ease; 
    -webkit-transition: 0.3s all ease; 

    background-color: transparent; 
    height: 0; 
} 

.navbar-fixed-top.navbar-fixed-top-sticky { 
    background-color: #601a36; 
    height: 80px; 
} 

Надеюсь, что работает!

+0

Я не думаю, что это сработает. Вы забыли (ы) в период перехода. –

+0

Ahh, мой плохой, я сделал немного копий-пасты из OP. Ред. – AsLittleDesign

+0

Но ваш ответ все еще не совсем прав. Проблема заключается не только в том, что не задано значение по умолчанию. Основная проблема - недостающий блок ... – eisbehr

1

Вам нужно добавить unit за ваши тайминги. 0.3 недействительно, оно должно быть чем-то вроде 0.3s или 300ms. Тогда будет работать background-color, но для перехода height вам нужно добавить значение по умолчанию в ваш класс .navbar-fixed-top css.

$(window).scroll(function() { 
 
    if($(this).scrollTop() > 50) { 
 
     $('.navbar-fixed-top').addClass("navbar-fixed-top-sticky"); 
 
    } else { 
 
     $('.navbar-fixed-top').removeClass("navbar-fixed-top-sticky"); 
 
    } 
 
});
/* --- just for demo --- */ 
 
.navbar-fixed-top { 
 
    position: fixed; 
 
    width: 100%; 
 
    line-height: 20px; 
 
    background: #ccc; 
 
} 
 
.navbar-fixed-top-sticky { 
 
    line-height: 80px; 
 
} 
 
.content { 
 
    height: 1000px; 
 
} 
 
/* --- just for demo --- */ 
 

 
.navbar-fixed-top { 
 
    height: 20px;        /* default height */ 
 
    transition: 0.3s all ease;    /* added unit */ 
 
    -moz-transition: 0.3s all ease;   /* added unit */ 
 
    -webkit-transition: 0.3s all ease;  /* added unit */ 
 
} 
 
.navbar-fixed-top-sticky { 
 
    background: #601a36; 
 
    height: 80px; 
 
    transition: 0.3s all ease-in-out;   /* added unit */ 
 
    -moz-transition: 0.3s all ease-in-out; /* added unit */ 
 
    -webkit-transition: 0.3s all ease-in-out; /* added unit */ 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class="navbar-fixed-top">.navbar-fixed-top</div> 
 
<div class="content"></div>

-3

Это должно разобраться. Сохраните CSS, исключите только части transition.

$(window).scroll(function() { 
      if ($(this).scrollTop() > 50) { 
       $('.navbar-fixed-top').addClass("navbar-fixed-top-sticky").fadeIn('slow'); 
      } else { 
     $('.navbar-fixed-top').removeClass("navbar-fixed-top-sticky").fadeOut('slow'); 

    } 
     }); 

или вы можете попробовать добавить единицы времени, как вы должны к вашему transitions:

.navbar-fixed-top { 
     transition: 0.3s all ease; 
     -webkit-transition: 0.3s all ease; 
    } 

    .navbar-fixed-top.navbar-fixed-top-sticky { 
     background: #601a36; 
     height: 80px; 
     transition: 0.3s all ease-in-out; 
     -webkit-transition: 0.3s all ease-in-out; 
    } 
+0

Вниз избирателя, позаботьтесь, чтобы объяснить? – stormec56

+0

Возможно, потому, что вы делаете предположение, что требуется затухание. В этом вопросе нет никаких указаний. –

+0

... достаточно ... – stormec56

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