`
yiminghe
  • 浏览: 1460511 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Ext.Fx 队列控制机制

阅读更多

承续 Ext.Fx分析   ,  Ext.lib.anim 分析


Ext.Fx 为对底层Ext.lib.Anim 的封装,提供了一些现成的配置而形成的动画,比如fadeIn渐进显示,slideIn滑动显示,都是构造配置参数传递给底层的Ext.lib.Anim 对象具体运行,但是FX也进一步提供了以动画为单元的队列机制,不同于底层按照时间片排队,fx按照元素的动画调用顺序排队。

其中有三个参数控制Fx:

 concurrent

控制是否启用排队机制,如果为true并且队列中第一个动画不是block则当前动画立即执行,否则如果为false并且队列中第一个动画不是block 则将当前元素的动画处理存入队列,并判断如果

当前对列为空则执行或者
要等队列中在执行的动画执行完毕后nextFx退出队列并通知下一个动画执行时才可能执行。

queueFx : function(o, fn){
        if(!this.fxQueue){
            this.fxQueue = [];
        }
        //对列第一个没有block
        if(!this.hasFxBlock()){
            Ext.applyIf(o, this.fxDefaults);
            //当前并发?
            if(!o.concurrent){
                //是否对列为空,或者stopFx要结束队列第一个动画
                var run = this.beforeFx(o);
                fn.block = o.block;
                this.fxQueue.push(fn);
                if(run){
                    this.nextFx();
                }
            }else{
                fn.call(this);
            }
        }
        return this;
    },

 

 block

当设置为true并且concurrent为false,则当前动画处理放入队列处理,当下一个元素动画申请处理时,判断动画队列头是否是block,如果是则当前元素动画取消。

 stopFx

当设置为true时,则如果自己设置的是concurrent为true,则立即终止队列第一个动画的执行,从对列第二个动画开始执行

(

如果不用Fx而使用opt配置来是普通操作动画,比如scroll("left",num,opt)

则执行后 opt会有一个anim变量,类型为Ext.Lib.Anim,可以使用

Ext.lib.AnimMgr.stop(opt.anim);

来强制停止当前进行的动画

)



举个例子:


点击按钮后,快速弹出渐隐提示,并随后慢慢渐隐消失,要达到的效果是连续多次点击时,动画不会混乱,即如果点击后发现上次动画还没结束,此次提示操作就取消

要点:

1.渐隐出现和渐隐消失要排队,而不能同时进行。(利用concurrent参数)
2.在进行渐隐消失时,如果又出现了渐隐出现动画,渐隐消失动画,则后两个动画取消(利用block参数)

演示@google code

 

IE 中貌似有问题,原因未知

分享到:
评论

相关推荐

    Ext.fx动画特效用法(转)

    2. **动画队列**:使用`Ext.fx.Queue`可以将多个动画组成队列,按照指定顺序依次执行。 五、最佳实践 1. **性能优化**:尽量减少不必要的动画,避免过度使用导致性能下降。 2. **用户体验**:确保动画的使用能提升...

    Ext.get与Ext.fly的区别

    ### Ext.get与Ext.fly的区别 在Ext JS框架中,`Ext.get`和`Ext.fly`是两个非常重要的方法,它们主要用于操作DOM元素。理解这两个方法之间的区别以及如何使用它们对于开发高质量、高效率的应用程序至关重要。 #### ...

    extjs-Ext.ux.form.LovCombo下拉框

    在EXTJS框架中,`Ext.ux.form.LovCombo`是一种自定义组件,它扩展了基本的`Ext.form.field.ComboBox`,提供了更丰富的功能,尤其是针对多选和联动选择的需求。这个组件通常用于创建具有“lov”(即“Look Up Value”...

    Ext.get与Ext.fly 的区别

    在EXTJS这个强大的JavaScript框架中,`Ext.get`和`Ext.fly`是两个非常重要的方法,它们都用于操作DOM元素,但它们之间存在着微妙的差异。了解这些差异对于优化代码性能和理解EXTJS的工作机制至关重要。 首先,`Ext....

    Ext.data.Store的基本用法

    ### Ext.data.Store的基本用法详解 #### 一、Ext.data.Store简介 `Ext.data.Store`是ExtJS框架中用于管理数据的核心组件之一。它主要负责数据的存储、加载、更新等操作,并且提供了多种方法来方便地处理这些数据。...

    Ext.Ajax.request跨域

    标题"Ext.Ajax.request跨域"指出我们将探讨如何使用ExtJS库中的Ajax模块进行跨域请求。Ext.Ajax.request是ExtJS提供的一种发起Ajax请求的方式,它允许开发者向服务器发送异步HTTP请求。然而,由于浏览器的同源策略...

    EXT.form组件

    例如,`Ext.form.NumberField`的配置项包括`allowDecimals`、`allowNegative`、`decimalPrecision`等,用于控制数字输入的规则。而`Ext.form.TextArea`支持`growMax`和`growMin`,可以自动调整高度以适应输入内容。`...

    org.restlet.ext.spring.jar

    org.restlet.ext.spring.jar

    Ext.Store的获取方法

    在Ext.js中,`Ext.Store`是用来管理数据的类,它通常与各种UI组件(如Grid、ComboBox等)关联,用于存储和检索数据。然而,获取`Ext.Store`的方式并不像获取其他Ext组件那样直接,因为Store并不是一个具有可视界面的...

    一个简单的Ext.Window中插入图片的例子

    在Ext JS这个强大的JavaScript框架中,`Ext.Window`是一个常用组件,用于创建浮动、可弹出的窗口。在Web应用程序中,我们常常需要在这些窗口中展示各种内容,包括文字、表格、按钮,当然还有图片。本文将详细介绍...

    Ext.ux.SwfUploadPanel.js

    `Ext.ux.SwfUploadPanel.js`是这样一个基于ExtJS和SwfUpload技术的插件,它实现了多文件上传的功能。这篇文章将深入探讨这个插件的工作原理、主要特点以及如何在实际项目中应用。 首先,`ExtJS`(全称为EXT ...

    Ext.tree.TreeLoader附带封装的json类

    在本文中,我们将深入探讨`Ext.tree.TreeLoader`与JSON数据在Ext JS框架中的应用。`Ext.tree.TreeLoader`是Ext JS库中的一个组件,它负责加载和解析树形结构的数据,而JSON(JavaScript Object Notation)则是一种轻...

    EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档

    EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档EXT.JS_文档...

    vbe6ext.olb

    运行Microsoft office时,vbe6ext.olb不能加载

    Ext3.2的Ext.data.Store类和Ext.Ajax类的实际运用

    环境:Window XP Sp2、Tomcat 6.0、...关于Ext.data.Store类,我们可以看出:该框架提供了客户端缓存的功能--这对于我们框架系统是非常有帮助的。本示例代码注释非常详细。 阅读对象:需要使用Ext框架进行Web开发的人员

    Ext.window从右下角弹出/隐藏

    ### Ext.window从右下角弹出/隐藏:深入解析与实现 #### 一、概述 在Web应用开发中,为了提升用户体验,开发者经常会利用各种UI框架来实现丰富的交互效果。ExtJS作为一款成熟且功能强大的JavaScript框架,在这方面...

    EXT dojochina文本框示例Ext.form.TextField.rar

    在本示例中,"EXT dojochina文本框示例Ext.form.TextField.rar"是一个压缩包,包含了EXT框架中关于`Ext.form.TextField`组件的示例代码。 `Ext.form.TextField`是EXT框架中的一个核心组件,用于创建基本的输入字段...

    删除shell360ext.dll的最佳解决方法

    shell360ext.dll是与360安全卫士相关的动态链接库,主要负责提供一些系统扩展功能。然而,有时候用户可能会遇到需要删除这个文件的情况,可能是由于软件冲突、病毒感染或者误删导致的问题。本文将详细介绍如何安全...

    EXT dojoChina按钮控件示例 Ext.Button.rar

    EXT dojoChina按钮控件示例 Ext.Button.rarEXT dojoChina按钮控件示例 Ext.Button.rarEXT dojoChina按钮控件示例 Ext.Button.rarEXT dojoChina按钮控件示例 Ext.Button.rar

Global site tag (gtag.js) - Google Analytics