function jQuery jQuery fx step clip function fx if fx state var cRE re

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
(function(jQuery){
jQuery.fx.step.clip = function(fx){
if ( fx.state == 0) {
var cRE = /rect\(([0-9]{1,3})(px|em) ([0-9]{1,3})(px|em) ([0-9]{1,3})(px|em) ([0-9]{1,3})(px|em)\)/;
if(typeof(jQuery(fx.elem).css("clip")) == 'undefined')
{
fx.start = "rect(" + jQuery(fx.elem).css("clipTop") + " " + jQuery(fx.elem).css("clipRight") + " " + jQuery(fx.elem).css("clipBottom") + " " + jQuery(fx.elem).css("clipLeft") +")";
}
else
{
fx.start = jQuery(fx.elem).css("clip");
}
fx.start = cRE.exec(fx.start.replace(/,/g, ''));
fx.end = cRE.exec(fx.end.replace(/,/g, '') );
}
if(fx.start !== null)
{
var sarr = new Array(), earr = new Array(), spos = fx.start.length, epos = fx.end.length,
emOffset = fx.start[ss+1] == 'em' ? ( parseInt($(fx.elem).css('fontSize')) * 1.333 * parseInt(fx.start[ss]) ) : 1;
for ( var ss = 1; ss < spos; ss+=2 ) { sarr.push( parseInt( emOffset * fx.start[ss] ) ); }
for ( var es = 1; es < epos; es+=2 ) { earr.push( parseInt( emOffset * fx.end[es] ) ); }
fx.elem.style.clip = 'rect(' +
parseInt( ( fx.pos * ( earr[0] - sarr[0] ) ) + sarr[0] ) + 'px ' +
parseInt( ( fx.pos * ( earr[1] - sarr[1] ) ) + sarr[1] ) + 'px ' +
parseInt( ( fx.pos * ( earr[2] - sarr[2] ) ) + sarr[2] ) + 'px ' +
parseInt( ( fx.pos * ( earr[3] - sarr[3] ) ) + sarr[3] ) + 'px)';
}
}
})(jQuery);