添加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. nginx 安装及代理配置。

    新建etc/yum.repos.d/nginx.repo文件,添加以下内容:[nginx] name=nginx repo baseurl=http://nginx.org/packages/cent ...

  2. 图片form表单提交和id提交

    <form action="${pageContext.request.contextPath }/sarchServlet" method="post" ...

  3. imp导入oracle的dmp备份数据

    imp system/oracle fromuser=lc0029999 touser=lc0029999 rows=y commit=y buffer=65536 feedback=10000 ig ...

  4. WEB服务器、应用程序服务器、HTTP服务器区别

    很清晰的解释了WEB服务器.应用程序服务器.HTTP服务器区别 转载自 http://www.cnblogs.com/zhaoyl/archive/2012/10/10/2718575.html WE ...

  5. MySQL把多个字段合并成一条记录的方法

    转:http://www.111cn.net/database/mysql/71591.htm MySQL把多个字段合并成一条记录的方法 在mysql中字段合并可以使用很多函数来实现,如可以利用 GR ...

  6. UVa 458 - The Decoder

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=94&page=s ...

  7. Oracle环境变量NLS_LANG

    常见的值可以参见Oracle Database Client Globalization Support

  8. linux下(Ubuntu、centos)添加永久静态路由的方法

    项目中经常遇到多网卡的服务器,但是一个服务器的默认网关只有一个,当需要在多个网络中访问的时候(特别是在公安.交警等政府项目中),就需要添加静态路由了. 添加静态路由的方法有很多种,下面介绍2种比较常见 ...

  9. 在线学习体验大PK 云智慧发布在线教育网站性能监测报告

    互联网不但改变了我们的生活.娱乐和消费方式,也推动各行各业进行着快速变革,越来越多的职场人士必须通过不断的学习.充电才能跟上行业发展的步伐,获得职业的提升,而这也引发了国内教育市场的爆炸式发展.据统计 ...

  10. ajax无刷新上传图片

    页面: <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> & ...