添加css3的一些动画的属性

使用方法:

css3(oDiv[0], 'scale', 300)('rotate', 300);
css3(oDiv[0], 'animation', '"dd" .50s ease-in-out 0s');

ps:可以完成一个变形继续下一个变形;

  dd为具体动画的样式;

@-webkit-keyframes 'dd' {
0% { -webkit-transform:rotate(0deg);
}
50% {-webkit-transform:rotate(40deg);
}
100% {-webkit-transform:roate(70deg);
}
}

函数如下:

function css3(obj, attr, value) {
if (arguments.length == 2) {
if (attr == 'scale' || attr == 'rotate' || attr == 'rotateY' || attr == 'translateZ') {
var arr = ["Webkit", "Moz", "O", "ms", ""];
var sVal = '';
if (!obj.$Transform) {
obj.$Transform = {};
}
for (var i = 0; i < arr.length; i++) {
obj.style[arr[i] + "Transform"] = sVal;
switch (attr) {
case 'scale':
sVal = typeof(obj.$Transform[attr]) == 'number' ? obj.$Transform[attr] : 100;
break;
default:
sVal = obj.$Transform[attr] ? obj.$Transform[attr] : 0;
}
}
}
var sCur = obj.currentStyle ? obj.currentStyle[attr] : document.defaultView.getComputedStyle(obj, false)[attr];
if (attr == 'opacity') {
return parseInt(parseFloat(sCur) * 100);
} else {
return parseInt(sCur);
}
} else
if (arguments.length == 3) {
switch (attr) {
case 'scale':
case 'rotate':
case 'rotateY':
case 'translateZ':
case 'animation':
setCss3(obj, attr, value);
break;
case 'width':
case 'height':
case 'paddingLeft':
case 'paddingTop':
case 'paddingRight':
case 'paddingBottom':
value = Math.max(value, 0);
case 'left':
case 'top':
case 'marginLeft':
case 'marginTop':
case 'marginRight':
case 'marginBottom':
obj.style[attr] = value + 'px';
break;
case 'opacity':
obj.style.filter = "alpha(opacity:" + value + ")";
obj.style.opacity = value / 100;
break;
default:
obj.style[attr] = value;
}
}
return function(attr_in, value_in) {
css(obj, attr_in, value_in)
};
} function setCss3(obj, attr, value) {
var sTr = "";
var sVal = "";
var arr = ["Webkit", "Moz", "O", "ms", ""];
if (!obj["$Transform"]) {
obj["$Transform"] = {};
}
if (attr == 'animation') {
for (var i = 0; i < arr.length; i++) {
obj.style[arr[i] + 'Animation'] = value;
}
} else {
obj["$Transform"][attr] = parseInt(value);
for (sTr in obj["$Transform"]) {
switch (sTr) {
case 'scale':
sVal += sTr + "(" + (obj["$Transform"][sTr] / 100) + ") ";
break;
case 'rotate':
case 'rotateY':
sVal += sTr + "(" + (obj["$Transform"][sTr]) + "deg) ";
break;
case 'translateZ':
sVal += sTr + "(" + (obj["$Transform"][sTr]) + "px) ";
break;
}
}
for (var i = 0; i < arr.length; i++) {
obj.style[arr[i] + "Transform"] = sVal;
}
}
}

[f]添加css3动画的方法的更多相关文章

  1. CSS3 动画实现方法大全

    常用效果总结(需要引用animate.css) <!doctype html> <html lang="en"> <head> <meta ...

  2. 如何为不定高度(height:auto)的元素添加CSS3 transition-property:height 动画

    但一个元素不设置height时,它的默认值是 auto,浏览器会计算出实际的高度. 但如果想给一个 height:auto 的块级元素的高度添加 CSS3 动画时,该怎么办呢? 从 MDN 的可以查到 ...

  3. css3动画由浅入深总结

    阅读目录 一:过渡动画---Transitions 二:Animations功能 三:translate(tx,ty) 四:scale(x,y) 五:rotate(x): 5.1:skew(x,y): ...

  4. CSS3 动画基础

    该文为译文转载,原文地址:http://tech.163.com/mobile/10/0106/09/5SB96QSM00112K88.html   译文:你需要知道的CSS3 动画技术 原文:Wha ...

  5. 用CSS3动画,让页面动起来

    以前就听说过有个库,叫animate.css,但是自己并没有在实际项目中使用过,这次正好要做个招聘页面,得以利用一下这个库,在经常会卡顿的UC浏览器中也能流畅执行. 扫描下面的二维码,可以看到在线的d ...

  6. CSS3 动画效果带来的bug

    css3 动画效果比如transition:all 2s linear;这种用来计算及时的物体坐标的话会带来一定的问题 比如把一个DIV从A点移动到B点.JS为DIV.style.left=B; 但是 ...

  7. 【转】CSS3动画帧数科学计算法

    本文来源于:财付通TID 原作者:bboy90 总结都浓缩在这个工具里了,想知道工具的地址或想窥探工具诞生的趣事请往下看 . —————————————————————–     华丽丽的开篇     ...

  8. 如何使用js捕获css3动画

    如何使用js捕获css3动画 css3动画功能强大,但是不像js,没有逐帧控制,但是可以通过js事件来确定任何动画的状态. 下面是一段css3动画代码: #anim.enable{ -webkit-a ...

  9. css3动画和jquery动画使用中要注意的问题

    前一阵子写demo的时候遇到这样一个问题,就是给元素添加css3或者jquery动画时,在动画结束前不能准确取到元素的css属性. 1. css3动画讨论 先看代码: html: <div id ...

随机推荐

  1. android Tab 类型切换界面

    实现方案:viewpager + fragment + FragmentPagerAdapter 效果图: 可以左右滑动切换选项卡,或者点击: 如果想使用fragment的时候又想可以左右滑动,就可以 ...

  2. webstrom 2016 破解

    本篇文章经过笔者实验结果,网友均可放心使用 版权声明:本文为博主原创文章,未经博主允许不得转载. 工欲善其事,必先利其器 websrtom作为前端开发神器,现在是越来越多的用户使用.很多小白们下载好了 ...

  3. 解决box-flex不均等分的问题

    我想当你上手css3的时候后一定为他的强大而感到震惊,但是震惊之后带来的一定是苦恼,因为他太TM变态了! 我之所以这么说是因为我今天写box-flex的时候遇到了一个可以让我蛋碎的问题~~~ 首先,b ...

  4. 44. 普通对象建一个用户方法,提交时报:失败:建立业务逻辑对象失败:业务逻辑定义更新到数据库失败:ORA-00904: "DEFVERSION": 标识符无效

    LBBIZPROCESSDEFSLBHISTORYBIZPROCESSDEFSLBHISTORYMULTIWFDEFSDESIGNLBHISTORYWORKFLOWDEFSDESIGNLBMULTIW ...

  5. WEB-INF下jsp跳转

    今天才知道:浏览器是不允许直接访问WEB-INF文件夹的 瞬间感觉自己好shi的有没有,纠结了2天 看来还得通过springMVC来跳,,,

  6. 使用fastcgi_finish_request提高页面响应速度

    当PHP运行在FastCGI模式时,PHP FPM提供了一个名为fastcgi_finish_request的方法. 按照文档上的说法,此方法可以提高请求的处理速度,如果有些处理可以在页面生成完后再进 ...

  7. XidianOJ 1076 小W喜欢的数字

    题目描述 大家都知道,小W是一名大帅哥,当然比起Light还是有点儿差距的!帅气的小W认为0-9这些数字,只有1,3,5是完美的. 欲问小W为什么,小W总是说"帅哥,是不需要解释的" ...

  8. ASP.NET Web API系列教程目录

    ASP.NET Web API系列教程目录 Introduction:What's This New Web API?引子:新的Web API是什么? Chapter 1: Getting Start ...

  9. 更好更快更高效解析JSON说明

    现在来一个实例解析类,直接就把解析JSON到QVariant去了.唯一不足的是没有搞错误处理,具体方法也请各位自行参考json-c的发行文档,这样比较方便叙述,STL或者Boost我都没有认真接触过, ...

  10. HDU 3065 病毒侵袭持续中(AC自动机)

    这题数据太水,一开始没有加上Get的方法也能AC..话说AC自动机中一定要注意加上Get的方法!(不然,同一个后缀的其他单词就没被算上了.) 代码如下: #include <stdio.h> ...