2016-04-26 6 views
0

Я хочу создать какой-то анимированный эффект уменьшения с помощью GSAP. То, что я пытаюсь сделать, - это масштабирование элемента с удвоенного размера до нормального размера и применение исчезающего blur filter. Фильтр должен начинаться с blur(15px) и снижаться до blur(0).Анимация размытия фильтра с GSAP

Я думал, что я мог бы сделать это таким образом:

var el = $('img'); 

TweenLite.set(el, { 
    'webkitFilter': 'blur(15px)', 
    scale: 2 
}); 
TweenLite.to(el, 0, { 
    autoAlpha: 1, 
    delay: 1.75, 
    ease: Power2.easeIn 
}); 
TweenLite.to(el, 2, { 
    'webkitFilter': 'blur(0px)', 
    scale: 1, 
    delay: 1.7, 
    ease: Power2.easeIn 
}); 

Что происходит, вместо этого, является то, что blur(0) будет применяться немедленно.

Простой pen, показывая проблему. Что я делаю неправильно?

ответ

3

Вы пробовали просто обновление до GSAP 1.18.4? Кажется, работает в вашем кодефене. Ссылка CDN на TweenMax 1.18.4 равна https://cdnjs.cloudflare.com/ajax/libs/gsap/1.18.4/TweenMax.min.js

+0

спасибо, это действительно сработало. Почему на странице начала работы он все еще использует 1.18.0? – Carlo

2

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

onUpdate:function(tl){ 
    var tlp = (tl.progress()*40)>>0; 
    TweenMax.set('#blur img',{'-webkit-filter':'blur(' + tlp + 'px' + ')','filter':'blur(' + tlp + 'px' + ')'}); 

     var heading = $('#blur h3'); 
    heading.text('blur(' + tlp + 'px)'); 
    } 

здесь большой демо сделал Marzullo http://codepen.io/jonathan/pen/ZWOmmg

+0

Я вижу. Но вы не можете в GSAP, потому что с помощью css3 вы можете анимировать его с помощью ключевых кадров, не так ли? – Carlo

+0

Да, в CSS вы можете анимировать через Frames: .blur { -webkit-animation: blur 3s infin; } @ - webkit-keyframes blur { 0%, 100% {-webkit-filter: blur (0px); } 50% {-webkit-filter: размытие (10px); } } –

+1

Как @Jack выше. С помощью нового 'GSAP 1.8.4' вам не нужно использовать' onUpdate' и напрямую анимировать CSS-фильтр. См. Этот пример: http://codepen.io/jonathan/pen/NNoWjw –