2013-06-28 6 views
0

Итак, я пытаюсь анимировать свойство css, основанное на прокрутке окна браузера. приведенный ниже код работает, но я бы хотел, чтобы у него был переход, а не просто внезапный щелчок от непрозрачности 1 до непрозрачности 0,5. любая помощь приветствуется. заранее спасибо.Jquery animate div opacity на прокрутке

$(document).ready(function(){ 
$(window).scroll(function(){ 
    if ($(window).scrollTop() > 50){ 
     $('.header').css('background','rgba(200, 54, 54, 0.5)'); 
    } 
    else if ($(window).scrollTop() < 50){ 
     $('.header').css('background','rgba(200, 54, 54, 1)'); 
    } 
}); 

});

Вот jsfiddle ссылка на код до сих пор

ответ

2

вы можете сделать

$(window).scroll(function(){ 
    if ($(window).scrollTop() > 50){ 
     $('.header').css('background','rgb(200, 54, 54)').stop().animate({"opacity":".5"},1000) 
    } 
    else if ($(window).scrollTop() < 50){ 
     $('.header').css('background','rgb(200, 54, 54)').stop().animate({"opacity":"1"},1000) 
    } 
});  

http://jsfiddle.net/XXjZW/2/

+0

Спасибо. этот код и следующий пример отлично работают, но это подводит меня к другому вопросу. Как я могу анимировать непрозрачность фона, влияя на тег h1 внутри div заголовка? – Mike

+0

jQuery UI [http://jsfiddle.net/XXjZW/9/](http://jsfiddle.net/XXjZW/9/) –

1

Вы можете использовать свойство CSS3 transition:

.header{ 
    -webkit-transition:background 1s; 
    -moz-transition:background 1s; 
    -o-transition:background 1s; 
    transition:background 1s; 
} 
1

Если вы хотите совместимость с браузерами, которые не Suppor CSS3, я бы порекомендовал вам использовать библиотеки JQuery UI:

$('.header').animate({ 
     backgroundColor: "#aa0000" 
    }, 1000); 

Живой пример: http://jsfiddle.net/XXjZW/8/

Вам нужно будет включить его, когда вы включаете библиотеку jQuery:

<script src="//ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"></script>