lehsyh 发表于 2013-2-7 22:23:57

Ext中的动画处理

      在进行Javascript开发,有时会有一些动画效果的实现需要,这往往浪费了开发人员不必要的精力。而Ext开发小组则提供了Fx类(类Ext.Fx )集中处理了大部分常用的js动画特效,减少了我们自己手写代码的复杂度。
      这是一个提供基础动画和视觉效果支持的类。注意:此类被引用后会自动应用于 Ext.Element 的接口, 因此所有的效果必须通过 Element 对象来实现。反过来说,既然 Element 对象实际上并没有定义这些效果, Ext.Fx 类必须被 Element 对象引用后才能使那些效果生效。
 
下面我给出一个简单的实例代码,其中囊括了大部分的Ext动画效果:
 
// 通过id获取
var el = Ext.get("my-div");

// 通过DOM元素引用by DOM element reference
var el = Ext.get(myDivElement);

1、 fadeIn( ) :
  Ext.Element 渐显 options参数有以下属性
callback:Function    完成后的回叫方法
scope:Object        目标
easing:String       行为方法 默认值是:easeOut,可选值在ext_base中找到,但没有说明,以下内容从yahoo ui中找到的
easeNone: 匀速
easeIn: 开始慢且加速
easeOut: 开始快且减速
easeBoth: 开始慢且减速
easeInStrong: 开始慢且加速,t的四次方
easeOutStrong: 开始快且减速,t的四次方
easeBothStrong: 开始慢且减速,t的四次方
elasticIn:
elasticOut:
elasticBoth:
backIn:
backOut:
backBoth:
bounceIn:
bounceOut:
bounceBoth:
afterCls:String        事件完成后元素的样式
duration:Number        事件完成时间(以秒为单位)
remove:Boolean        事件完成后元素销毁?
useDisplay:Boolean    隐藏元素是否使用display或visibility属性?
afterStyle:String/Object/Function        事件完成后应用样式
block:Boolean        块状化
concurrent:Boolean    顺序还是同时执行
stopFx :Boolean    当前效果完成后随合的效果是否将停止和移除
 
2、fadeOut( ) : Ext.Element 渐隐

fadeOut和fadeIn能使用一个特别的endOpacity属性以指示结束时的透明度
例:el.fadeIn({duration:5,endOpacity:0.7});
 
3、frame( , , ) : Ext.Element 边框变亮扩展然后渐隐
例:el.frame("ff0000", 10, { duration: 3 })
 
4、ghost( , ) : Ext.Element 渐渐滑出视图,anchor定义
tl     左上角(默认)
t      上居中
tr     右上角
l      左边界的中央
c      居中
r      右边界的中央
bl     左下角
b      下居中
br     右下角

例:
el.ghost('b', {
    easing: 'easeOut',
    duration: .5
    remove: false,
    useDisplay: false
});
 
5、hasActiveFx() : Boolean 指示元素是否当前有特效正在活动
 
6、hasFxBlock() : Boolean 是否有特效阻塞了
 
7、highlight( , ) : Ext.Element 高亮显示当前元素
例:el.highlight("ffff9c", {
    attr: "background-color", //can be any valid CSS property (attribute) that supports a color value
    endColor: (current color) or "ffffff",
    easing: 'easeIn',
    duration: 1
});
 
8、pause( Number seconds ) : Ext.Element 暂停
 
9、puff( ) : Ext.Element 元素渐大并隐没

例:el.puff({
    easing: 'easeOut',
    duration: .5,
    remove: false,
    useDisplay: false
});
 
10、scale( Number width, Number height, ) : Ext.Element 缩放
例:el.scale(
    ,
    , {
    easing: 'easeOut',
    duration: .35
});
 
11、sequenceFx() 特效序列
12、shift( Object options ) : Ext.Element 位移,并可重置大小,透明度等
例:
el.shift({
    width: ,
    height: ,
    x: ,
    y: ,
    opacity: ,
    easing: 'easeOut',
    duration: .35
});
 
13、slideIn( , ) : Ext.Element 淡入
14、slideOut( , ) : Ext.Element 淡出
例:el.slideIn('t', {
    easing: 'easeOut',
    duration: .5
});

15、stopFx() : Ext.Element 停止特效
16、switchOff( ) : Ext.Element 收起并隐没
例:
el.switchOff({
    easing: 'easeIn',
    duration: .3,
    remove: false,
    useDisplay: false
});
17、syncFx() : Ext.Element 异步特效
 
 
 
 
页: [1]
查看完整版本: Ext中的动画处理