跨浏览器transform
anim
模块支持跨浏览器的transform
动画,包括IE8等浏览器
transform示例一
Source
Output
QRCode
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8"/>
<title>transform</title>
<script charset="utf-8" src="//g.alicdn.com/kissy/k/5.0.1/seed.js"></script>
<style>
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
margin: 0;
padding: 0;
border: 0;
outline: 0;
font-size: 100%;
font: inherit;
vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
display: block;
}
body {
line-height: 1;
background: #fff;
}
ol, ul {
list-style: none;
}
blockquote, q {
quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
content: '';
content: none;
}
ins {
text-decoration: none;
}
del {
text-decoration: line-through;
}
table {
border-collapse: collapse;
border-spacing: 0;
}
.prettyprint {
font-family: monospace;
font-size: 11px;
}
.str {
color: #BFAC00;
}
.kwd, .typ {
color: #BF5600;
}
.com {
color: #111;
}
.lit {
color: #26BF00;
}
.pun, .opn, .clo {
color: #999;
}
.pln {
color: #DDD;
}
.tag {
color: #008;
}
.atn {
color: #606;
}
.atv {
color: #080;
}
.dec {
color: #606;
}
/* Specify class=linenums on a pre to get line numbering */
ol.linenums {
margin-top: 0;
margin-bottom: 0
}
/* IE indents via margin-left */
li.L0,
li.L1,
li.L2,
li.L3,
li.L5,
li.L6,
li.L7,
li.L8 {
list-style-type: none
}
/* Alternate shading for lines */
li.L1,
li.L3,
li.L5,
li.L7,
li.L9 {
background: #eee
}
/*------------------------------------*\
MAIN
\*------------------------------------*/
body {
background: #333;
width: 1000px;
margin: 0 auto;
color: #FFF;
overflow-x: hidden;
font-family: Arial, "Liberation Sans", sans;
}
header h1 {
font-family: 'Josefin Slab', arial, serif;
font-size: 6em;
color: #BBB;
text-shadow: 1px 0px #FFF;
margin: 30px 0 5px;
}
section, footer {
clear: both;
}
h2 {
font-family: 'Josefin Slab', arial, serif;
font-size: 2em;
padding: 2em 0 .3em;
}
footer a {
color: #FFF;
text-decoration: underline;
}
footer {
font-size: .8em;
text-align: right;
margin: 4em 0 2em;
}
#basic li {
display: inline-block;
width: 250px;
}
.square {
width: 100px;
height: 100px;
position: absolute;
}
.fright {
float: right;
}
.fleft {
float: left;
}
.color1 {
background: #bf0000;
color: #bf0000;
}
.color2 {
background: #bf5600;
color: #bf5600;
}
.color3 {
background: #bfac00;
color: #bfac00;
}
.color4 {
background: #7cbf00;
color: #7cbf00;
}
.color5 {
background: #26bf00;
color: #26bf00;
}
.color6 {
background: #00bf2f;
color: #00bf2f;
}
.color7 {
background: #00bf85;
color: #00bf85;
}
.color8 {
background: #00a2bf;
color: #00a2bf;
}
.color9 {
background: #004cbf;
color: #004cbf;
}
.color10 {
background: #0900bf;
color: #0900bf;
}
.color11 {
background: #5f00bf;
color: #5f00bf;
}
.color12 {
background: #b500bf;
color: #b500bf;
}
</style>
</head>
<body>
<section id="basic" style="position: relative;height: 400px">
<h2>Basic usage</h2>
<ul>
<li><pre class="brush: js;">KISSY.all(elem).animate({
transform: 'translateX(50px)'
});</pre>
<li><pre class="brush: js;">KISSY.all(elem).animate({
transform: 'rotate(135deg)'
});</pre>
<li><pre class="brush: js;">KISSY.all(elem).animate({
transform: 'scale(2,.5)'
});</pre>
<li><pre class="brush: js;">KISSY.all(elem).animate({
transform: 'skewX(35deg) skewY(15deg)'
});</pre>
</ul>
<div style="position: relative;padding: 40px 0;height: 300px">
<div id="basic1" class="square color1" style="position: absolute; margin-left: 0;"
data-trans="translateX(50px)"></div>
<div id="basic2" class="square color2"
style="left: 150px"
data-trans="rotate(135deg)"></div>
<div id="basic3" class="square color3"
style="left: 300px"
data-trans="scale(2,.5)"></div>
<div id="basic4" class="square color4"
style="left: 450px"
data-trans="skewX(35deg) skewY(15deg)"></div>
</div>
</section>
<section>
<h2>Advanced usage</h2>
<div id="advanced" style="height: 150px; position: relative;">
<div id="basic5"
style="left:200px"
class="square cover color5"></div>
<div id="basic6"
style="left:220px"
class="square cover color6"></div>
<div id="basic7"
style="left:240px;z-index: 2"
class="square cover color7"></div>
<div id="basic8"
style="left:260px"
class="square cover color8"></div>
</div>
</section>
<script>
require(['node'], function (Node) {
var $ = Node.all;
$('.square').on('mouseenter',function(e){
var currentTarget = $(e.currentTarget);
if (!currentTarget.isRunning()) {
currentTarget.animate({
transform: currentTarget.attr('data-trans')
}, {
//useTransition:1,
duration: 0.4
});
currentTarget.animate({
x: 1
}, {
//useTransition:1,
delay: 2,
duration: 0.1,
complete: function () {
currentTarget.css('opacity', .5)
}
}).animate({
transform: ''
}, {
//useTransition:1,
duration: 0.4,
complete: function () {
currentTarget.css('opacity', 1)
}
});
}
})
var transforms = [
'scale(.66) skewY(-45deg)',
'translate(20px) scale(.66) skewY(-45deg)',
'translate(150px,50px) scale(1.5,1)',
'translate(280px) scale(.66) skewY(45deg)',
'translate(300px) scale(.66) skewY(45deg)'
],
$squares = $('#advanced .square').each(function (v, i) {
$(v).css({ transform: transforms[i] });
});
$('#advanced').on('mouseenter',function () {
$squares.each(function (v, i) {
v.stop();
v.animate({ transform: transforms[i + 1] }, {
duration: 0.4
});
});
}).on('mouseleave', function () {
$squares.each(function (v, i) {
v.stop();
v.animate({ transform: transforms[i] }, {
duration: 0.4
});
});
});
});
</script>
</body>
</html>
transform示例二
Source
Output
QRCode
<!doctype html>
<html>
<head>
<meta charset="utf-8"/>
<style>
body {
background-color: #fff;
overflow: hidden;
}
.t {
border: 1px solid transparent;
position: absolute;
top: 200px;
left: 200px;
/*
ie
margin: 100px;
*/
}
#t2 {
top: 200px;
left: 500px;
}
.t {
width: 100px;
height: 100px;
background-color: red;
}
</style>
</head>
<body>
<h1 style="color:white;text-align: center">360</h1>
<button id="run">run</button>
<div id="t" class="t">
</div>
<div id="t2" class="t">
</div>
<script src="//g.alicdn.com/kissy/k/5.0.1/seed.js"></script>
<script>
require(['dom','anim','node'], function (Dom, Anim, Node) {
var t = Dom.get('#t');
var t2 = Dom.get('#t2');
Dom.css(t, 'transform-origin', '0px 0px');
var run = false;
Node.all('#run').on('click', function () {
if (run) {
return;
}
run = true;
new Anim(t, {
transform: 'rotate(360deg)'
}, {
duration: 1,
complete: function () {
Dom.css(t, 'transform', '');
run = false;
}
}).run();
var a2 = new Anim(t2, {
transform: 'rotate(360deg)'
}, {
duration: 1,
complete: function () {
Dom.css(t2, 'transform', '');
S.log('done2');
}
});
a2.run();
});
});
</script>
</body>
</html>