Changeset 308
- Timestamp:
- 09/29/07 20:45:04 (6 years ago)
- Location:
- lang/javascript/jstweener/trunk
- Files:
-
- 5 added
- 1 modified
- 1 moved
-
examples/mtypo.html (added)
-
examples/mtypo_bezier.html (added)
-
examples/transitions.html (moved) (moved from lang/javascript/jstweener/trunk/examples/index.html) (2 diffs)
-
src/JSTweener.js (modified) (7 diffs)
-
test (added)
-
test/test.html (added)
-
test/utils.js (added)
Legend:
- Unmodified
- Added
- Removed
-
lang/javascript/jstweener/trunk/examples/transitions.html
r258 r308 4 4 <meta http-equiv="Content-Style-Type" content="text/css"> 5 5 <meta http-equiv="Content-Script-Type" content="text/javascript"> 6 <title>JSTweener Example </title>6 <title>JSTweener Example - Transitoins</title> 7 7 <script language="JavaScript" src="../src/JSTweener.js"></script> 8 8 <script language="JavaScript"> … … 72 72 </head> 73 73 <body> 74 <h1>JSTweener Example </h1>74 <h1>JSTweener Example - Transitoins</h1> 75 75 <p> 76 76 <label for="time">Time:</label> <input id="time" size="4" type="text" value="1"></input> -
lang/javascript/jstweener/trunk/src/JSTweener.js
r293 r308 1 1 /* 2 * Yuichi Tateno. <hotch _potch@N0!spam@gmail.com>2 * Yuichi Tateno. <hotchpotch@N0!spam@gmail.com> 3 3 * http://rails2u.com/ 4 4 * … … 34 34 transition: 'easeoutexpo', 35 35 delay: 0, 36 prefix: {}, 37 suffix: {}, 36 38 onStart: undefined, 37 39 onStartParams: undefined, … … 49 51 } 50 52 }, 51 toNumber: function(value ) {53 toNumber: function(value, prefix, suffix) { 52 54 // for style 53 return value.match(/[0-9]/) ? Number(value.replace('px','')) : 0; 55 if (!suffix) suffix = 'px'; 56 57 return value.toString().match(/[0-9]/) ? Number(value.toString().replace( 58 new RegExp(suffix + '$'), '' 59 ).replace( 60 new RegExp('^' + (prefix ? prefix : '')), '' 61 )) 62 : 0; 54 63 }, 55 64 addTween: function(obj, options) { … … 76 85 77 86 for (var key in options) { 78 o.targetPropeties[key] = [this.toNumber(obj[key]), options[key] - this.toNumber(obj[key])]; 87 if (!o.prefix[key]) o.prefix[key] = ''; 88 if (!o.suffix[key]) o.suffix[key] = ''; 89 var sB = this.toNumber(obj[key], o.prefix[key], o.suffix[key]); 90 o.targetPropeties[key] = { 91 b: sB, 92 c: options[key] - sB 93 }; 79 94 } 80 95 … … 107 122 if (t >= d) { 108 123 for (var property in o.targetPropeties) { 109 var b = o.targetPropeties[property][0]; 110 var c = o.targetPropeties[property][1]; 124 var tP = o.targetPropeties[property]; 111 125 try { 112 o.target[property] = b + c;126 o.target[property] = o.prefix[property] + (tP.b + tP.c) + o.suffix[property]; 113 127 } catch(e) {} 114 128 } … … 132 146 } else { 133 147 for (var property in o.targetPropeties) { 134 var b = o.targetPropeties[property][0]; 135 var c = o.targetPropeties[property][1]; 136 var val = o.easing(t, b, c, d); 148 var tP = o.targetPropeties[property]; 149 var val = o.easing(t, tP.b, tP.c, d); 137 150 try { 138 // FIXME for IE. A Few times IE (style.width||style.height) = value is throw error...139 o.target[property] = val;151 // FIXME:For IE. A Few times IE (style.width||style.height) = value is throw error... 152 o.target[property] = o.prefix[property] + val + o.suffix[property]; 140 153 } catch(e) {} 141 154 } … … 159 172 } 160 173 }; 174 175 JSTweener.Utils = { 176 bezier2: function(t, p0, p1, p2) { 177 return (1-t) * (1-t) * p0 + 2 * t * (1-t) * p1 + t * t * p2; 178 }, 179 bezier3: function(t, p0, p1, p2, p3) { 180 return Math.pow(1-t, 3) * p0 + 3 * t * Math.pow(1-t, 2) * p1 + 3 * t * t * (1-t) * p2 + t * t * t * p3; 181 }, 182 allSetStyleProperties: function(element) { 183 var css; 184 if (document.defaultView && document.defaultView.getComputedStyle) { 185 css = document.defaultView.getComputedStyle(element, null); 186 } else { 187 css = element.currentStyle 188 } 189 for (var key in css) { 190 if (!key.match(/^\d+$/)) { 191 try { 192 element.style[key] = css[key]; 193 } catch(e) {}; 194 } 195 } 196 } 197 } 161 198 162 199 /*
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)