MooTools1.4源码分析- Fx.CSS

来源:网络 责任编辑:栏目编辑 发表时间:2013-07-01 16:41 点击:

 本文参考了我佛山人的Mootools1.2的源码分析二十九 -- Fx.CSS
 
/*
---
 
name: Fx.CSS
 
description: Contains the CSS animation logic. Used by Fx.Tween, Fx.Morph, Fx.Elements.
 
license: MIT-style license.
 
requires: [Fx, Element.Style]
 
provides: Fx.CSS
 
源码分析: 苦苦的苦瓜(http://hmking.blog.51cto.com)
 
...
*/
 
/**
* @Fx.CSS: 跟CSS有关的动画的基类,这里的动画,主要是从一个开始值到结束值的变化效果
**/
Fx.CSS = new Class({
 
    // 继承自Fx
    Extends: Fx,
 
    // prepares the base from/to object
    /**
    * @method: prepare
    * @param element - (object) 特效作用的元素对象
    * @param property - (string) CSS属性
    * @param values - (mixed) 包含开始值和结束值的数组或一个单值(结束值)
    * @returns: (object) - 包含from和to两个键值的对象字面量
    * @description: 动画的开始和结束值的前期处理
    * @notes: 此时from和to两个键的值为数组类型
    **/
    prepare: function (element, property, values) {
        // 把变量values数组化,因为values可能传一个单值,也可能是一个数组
        values = Array.from(values);
        // 取特效的起始值和结束值,如果如果只传了一个值,则本值将作为结束值,CSS属性的当前值为特效起始值
        if (values[1] == null) {
            values[1] = values[0];
            values[0] = element.getStyle(property);
        }
        // 将数组中的项使用parse方法解释
        var parsed = values.map(this.parse);
        // 返回from和to两个键值的对象字面量
        return { from: parsed[0], to: parsed[1] };
    },
 
    //parses a value into an array
    /**
    * @method: parse
    * @param value - (mixed) CSS属性值
    * @returns: (array) - 数组项值为包含value和parser两个键值的对象字面量,存储解释过的CSS属性值和包含针对此属性值的解释器
    * @description: 解析一个CSS属性值为一个数组
    **/
    parse: function (value) {
        // 使用lambad表达式,将value函数化之后再执行,这样的好处是使传的值可以是function,也可以是固定值
        value = Function.from(value)();
        // 数组化,如果是字符串类型,使用空格分隔成数组
        value = (typeof value == 'string') ? value.split(' ') : Array.from(value);
        // 对数组逐项处理
        return value.map(function (val) {
            // 转为字符类型
            val = String(val);
            var found = false;
            Object.each(Fx.CSS.Parsers, function (parser, key) {
          &

    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • Gb2312转utf-8编码的方法(vbs+js)
    • 如何使用Ajax技术开发Web应用程序(1)
    • js跳转路径问题
    • JavaScript模仿桌面窗口
    • 用js检测两个线段是否相交
    • 运用JavaScript构建你的第一个Metro式应用程序(on Windows
    • 我知道的JavaScript -- 设计模式(桥接)应用之 – 验证器
    • 我是如何去了解jquery的(六),案例之幻灯片轮换
    • Jquery封装幻灯片效果
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1