2016-09-10 3 views
0

У меня возникла проблема с анимацией навигатора.Атрибут стиля переопределяет свойство css, назначенное jquery

Проверьте, пожалуйста, код. Он работает хорошо, когда я прокручиваю вниз, но когда я вернусь, значение css не получит назначаемого, как указано в javascript. Пожалуйста, помогите мне в этом.

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script> 
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.0/jquery-ui.min.js"></script> 
<style> 
.positioned { 
    position: fixed; 
    top: 40px; 
    left: 15px; 
    width:100%; 
} 
.content{ 
    height:1200px; 
} 



/* Just cosmetic stuff */ 

body { 
    font-family: arial; 
    font-size: 14px; 
    height:1200px; 
} 

div { 
    background: #fafafa; 
    border: 1px solid #777; 
    padding: 5px; 
} 

.positioned { 
    background: #e1eef5; 
} 
</style> 
<div class="navbar"> 
</div> 

<div class="positioned"> 
    position: fixed; bottom: 10px; left: 15px; 
</div> 

<div class="content"> 

</div> 
<script type="text/javascript"> 
    $(window).scroll(function() { 
    if ($(window).scrollTop() >= 250) { 
     $('.positioned').animate({ 
      backgroundColor: "red", 
      height: '300px'},1000); 
    } else { 
     $('#box').css('display', 'block'); 
     $('.positioned').css("background-color", "yellow"); 
     // var rowNavbar = $('.row-navbar'); 
     // $('.row-navbar').animate({ 
     // height: '130px'},1000); 
    } 
}); 
</script> 
+0

Вот ссылка: http://codepen.io/mohanjp20/pen/QKjOOz –

+1

Пожалуйста, включите код в самом вопросе, а не только по ссылке. – 4castle

+0

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

ответ

0

Если более чем один метод анимации (количество раз прокручивать) вызывается в том же элементе, поздние анимации помещаются в очередь эффектов для элемента. Эти анимации не начнутся до тех пор, пока не завершится первая. Когда .stop() вызывается, следующая анимация в очереди начинается сразу

$(window).scroll(function() { 
if ($(window).scrollTop() >= 250) { 
    $('.positioned').stop().animate({ 
     backgroundColor: "red", 
     height: '300px'},1000); 
} else { 
    $('.positioned').stop().animate({ 
    display:'block', 
     backgroundColor: "yellow" 
     },1000); 
} 
}); 
+0

Спасибо большое. Теперь он отлично работает ... –

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