目前沒有用於動畫模糊的特定修飾符。這就是說。任何時候你想要一個自定義的動畫,你使用TweenTransition或Transitionable。這些類允許您通過指定的轉換在兩個值之間創建曲線。一旦這個被定義,你可以使用.get()獲取值並將它們應用到你想要的任何屬性。
這裏是工作的例子..
var Engine = require('famous/core/Engine');
var Surface = require('famous/core/Surface');
var StateModifier = require('famous/modifiers/StateModifier');
var Transitionable = require('famous/transitions/Transitionable');
var SnapTransition = require('famous/transitions/SnapTransition');
Transitionable.registerMethod('snap', SnapTransition);
var snap = { method :'snap', period: 400, dampingRatio: 0.7 };
var context = Engine.createContext();
var surface = new Surface({
size: [200,200],
properties: {
backgroundColor: 'red'
}
});
var transitionable;
var final_pos;
var blurred = false;
var blur_from_to = function(i,f,transition){
var initial_pos = i;
final_pos = f;
transitionable = new Transitionable(initial_pos);
transitionable.set(final_pos, transition);
Engine.on('prerender', prerender);
}
var prerender = function(){
current_pos = transitionable.get();
var blur_string = 'blur('+ current_pos + 'px)';
surface.setProperties({ webkitFilter:blur_string});
if (current_pos == final_pos) {
Engine.removeListener('prerender',prerender);
};
}
surface.on("click", function(){
blurred ? blur_from_to(10,0,snap) : blur_from_to(0,10,snap) ;
blurred = !blurred;
});
context.add(new StateModifier({origin:[0.5,0.5]})).add(surface);
祝您好運!
謝謝,這正是我所需要的。最初,我繼續前進,只是使用的CSS的方法,也工作得很好。你的可能更靈活。 – sday
太棒了!很高興爲了幫助!,我在scrollview上使用了scrollToPosition這個技術..這是一個非常好的理解! – johntraver
這是否適用於Android 4.4?因爲我在我的xperia z2(android 4.4)和genymotion(android模擬器)上測試過它,但它不起作用。它只適用於Chrome。 –