summaryrefslogtreecommitdiff
path: root/jqtouch/jqtouch.transitions.js
diff options
context:
space:
mode:
Diffstat (limited to 'jqtouch/jqtouch.transitions.js')
-rw-r--r--jqtouch/jqtouch.transitions.js60
1 files changed, 60 insertions, 0 deletions
diff --git a/jqtouch/jqtouch.transitions.js b/jqtouch/jqtouch.transitions.js
new file mode 100644
index 0000000..3fcdc02
--- /dev/null
+++ b/jqtouch/jqtouch.transitions.js
@@ -0,0 +1,60 @@
+/*
+
+ _/ _/_/ _/_/_/_/_/ _/
+ _/ _/ _/ _/_/ _/ _/ _/_/_/ _/_/_/
+ _/ _/ _/_/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/ _/
+ _/ _/_/ _/ _/ _/_/ _/_/_/ _/_/_/ _/ _/
+ _/
+ _/
+
+ Created by David Kaneda <http://www.davidkaneda.com>
+ Documentation and issue tracking on Google Code <http://code.google.com/p/jqtouch/>
+
+ Special thanks to Jonathan Stark <http://jonathanstark.com/>
+ and pinch/zoom <http://www.pinchzoom.com/>
+
+ (c) 2009 by jQTouch project members.
+ See LICENSE.txt for license.
+
+*/
+
+(function($) {
+
+ $.fn.transition = function(css, options) {
+ return this.each(function(){
+ var $el = $(this);
+ var defaults = {
+ speed : '300ms',
+ callback: null,
+ ease: 'ease-in-out'
+ };
+ var settings = $.extend({}, defaults, options);
+ if(settings.speed === 0) {
+ $el.css(css);
+ window.setTimeout(settings.callback, 0);
+ } else {
+ if ($.browser.safari)
+ {
+ var s = [];
+ for(var i in css) {
+ s.push(i);
+ }
+ $el.css({
+ webkitTransitionProperty: s.join(", "),
+ webkitTransitionDuration: settings.speed,
+ webkitTransitionTimingFunction: settings.ease
+ });
+ if (settings.callback) {
+ $el.one('webkitTransitionEnd', settings.callback);
+ }
+ setTimeout(function(el){ el.css(css) }, 0, $el);
+ }
+ else
+ {
+ $el.animate(css, settings.speed, settings.callback);
+ }
+ }
+ });
+ }
+})(jQuery); \ No newline at end of file