jQuery Transit是一款可制作超级平滑的CSS3 transformations 和 transitions动画的jQuery插件。它能够通过jQuery来完成CSS转换和过渡效果,而且动画平滑完美,这对于一些不支持CSS3转换和过渡属性的浏览器来说是一个非常有用的jQuery插件。
使用方法
只需要在页面中引入jQuery1.4+和 jquery.transit.js 文件。
<script src='jquery.js'></script>
<script src='jquery.transit.js'></script>
$ bower install --save jquery.transit
$ npm install --save jquery.transit
转换效果
你可以在这个jQuery插件中使用所有的CSS属性来设置元素转换动画效果。
$("#box").css({ x: '30px' }); // Move right
$("#box").css({ y: '60px' }); // Move down
$("#box").css({ translate: [60,30] }); // Move right and down
$("#box").css({ rotate: '30deg' }); // Rotate clockwise
$("#box").css({ scale: 2 }); // Scale up 2x (200%)
$("#box").css({ scale: [2, 1.5] }); // Scale horiz and vertical
$("#box").css({ skewX: '30deg' }); // Skew horizontally
$("#box").css({ skewY: '30deg' }); // Skew vertical
$("#box").css({ perspective: 100, rotateX: 30 }); // Webkit 3d rotation
$("#box").css({ rotateY: 30 });
$("#box").css({ rotate3d: [1, 1, 0, 45] });
该插件支持相对值。
$("#box").css({ rotate: '+=30' }); // 30 degrees more
$("#box").css({ rotate: '-=30' }); // 30 degrees less
所有的单位都是可选的。
$("#box").css({ x: '30px' });
$("#box").css({ x: 30 });
多个参数可以使用逗号分隔或使用一个数组。
$("#box").css({ translate: [60,30] });
$("#box").css({ translate: ['60px','30px'] });
$("#box").css({ translate: '60px,30px' });
该插件还支持获取值Getters(如果获取的值是多个会返回一个数组)
$("#box").css('rotate'); //=> "30deg"
$("#box").css('translate'); //=> ['60px', '30px']
动画 - $.fn.transition
你可以通过$.fn.transition()来制作CSS3 transitions 动画。它的工作方式类似$.fn.animate(),只是它使用的是CSS3 transitions
$("#box").transition({ opacity: 0.1, scale: 0.3 });
$("#box").transition({ opacity: 0.1, scale: 0.3 }, 500); // duration
$("#box").transition({ opacity: 0.1, scale: 0.3 }, 'fast'); // easing
$("#box").transition({ opacity: 0.1, scale: 0.3 }, 500, 'in'); // duration+easing
$("#box").transition({ opacity: 0.1, scale: 0.3 }, function() {..}); // callback
$("#box").transition({ opacity: 0.1, scale: 0.3 }, 500, 'in', function() {..}); // everything
你可以像$.fn.animate()那样在参数中使用duration、easing 和 complete。
$("#box").transition({
opacity: 0.1, scale: 0.3,
duration: 500,
easing: 'in',
complete: function() { /* ... */ }
});