日期:2014-05-17 浏览次数:20654 次
/* * 获取el被缩放的倍数 */ getZoomLeve : function(el) { // 标示缩放的css属性 var zoomPer, undefinedPer = 'none'; if(S.UA['firefox']) { zoomPer = '-moz-transform'; } else if(S.UA['ie']) { if(S.UA['ie'] == 9) { zoomPer = '-ms-transform'; } else { zoomPer = 'zoom'; undefinedPer = 'normal'; } } else { zoomPer = '-webkit-transform'; } var ret = 1; // 先计算元素在Iframe内部被缩放的大小 while(el.ownerDocument != document) { ret *= getZoom(el); var $ifrs = $('iframe'), curWin = el.ownerWindow, ifr; S.each($ifrs, function(item) { try{ if(item.contentWindow == curWin) { ifr = item; return false; } }catch(e) { // 捕获跨域访问的错误 } }); if(ifr) { el = ifr; } else { break; } } ret *= getZoom(el); function getZoom(htmlEl) { var ret = 1; // 这里的add将el的缩放也计算在内 S.each($(htmlEl).parents().add($(htmlEl)),function(el) { if($(el).css(zoomPer) && $(el).css(zoomPer)!=undefinedPer) { if(S.UA['ie'] && S.UA['ie']<9) { ret *= el.style.zoom; } else { var temp = $(el).css(zoomPer), start = temp.indexOf('(') + 1, end = temp.indexOf(','); ret *= temp.substring(start, end); } } }); return ret; } return ret; }
代码中的S是KISSY的缩写。