/Css3Transition

css3成对动画

Primary LanguageJavaScript

CssParser.js 是一款 string --> css 的工具类脚本。 使用者可以随意配置转换规则,以方便自己使用。

简单用例:

	var parser = new CssParser("width: 100px; x: 20px;");
	parser.toString(); // width:100px; transform: translateX(20px);

其中,脚本会根据当前的浏览器,给 transform 添加不同的前缀(只针对 transform/transition/animation)。

其中,如果 parser,不调用 reset 方法,每次设置css时,都会基于以前的样式,进行生成,如:

	parser.css("width: 100px;");
	parser.toString(); // width: 100px;
	parser.css("height: 100px;");
	parser.toString(); // width: 100px; height: 100px;

	parser.reset();
	parser.toString(); // ""

如果需要删除某个一个属性,则把该属性,设为 null 或 空:

	parser.css("width: 10px; height: 10px");
	parser.css("width:;"); // or "width: null;"
	parser.toString(); // height: 100px;

在 CssParser.js 中,预置了几个”别名“ 的属性:

	parser.css("x: 10px");
	parser.toString(); // transform:translateX( 10px);

别名表如下:

1. o --> opacity
2. s --> scale
3. sx --> scaleX
4. sy --> scaleY
5. r --> rotate
6. rx --> rotateX
7. ry --> rotateY
8. x --> translateX
9. y --> translateY
10. time --> transition-duration
11. wait --> transition-delay
12. property --> transition-property
13. tf --> transition-timing-function

如果要新增别名,可调用下面方法:

	CssParser.addAlias("posX", "left"); // 配置别名 posX --> left
	CssParser.addAlias("posY", "top");  // 配置别名 posY --> top
	CssParser.addAlias("sk", ["skew", "transform"]);  // 配置别名 sk --> transform: skew(xxx)

其中 CssParser.addAlias("sk", ["skew", "transform"]) 第二个参数,之所以可以是数组,是因为 CssParser 内置了 transfromtransition 两个参数的转换器。

转换器负责的工作,就是对特殊属性,进行字符串的转换,如我们定义一个 animation 的转换器:

	// 声明哪些属性,是属于 animation 的
	CssParser.addAlias("aname", ["name", "animation"]);
    CssParser.addAlias("atime", ["time", "animation"]);

	// 声明转换器
    CssParser.addConverter("animation", function(options){
        // {"name":" jump","time":" 1s"}
        return options.name + " " + options.time + " ease";
    });

    var parser2 = new CssParser("aname: jump; atime: 1s;");
    parser2.toString();  // animation: jump  1s ease;