1 /** 2 * @fileOverview position and visible extension,可定位的隐藏层 3 * @author yiminghe@gmail.com 4 */ 5 KISSY.add("component/uibase/positionrender", function () { 6 7 var ZINDEX = 9999; 8 9 function Position() { 10 } 11 12 Position.ATTRS = { 13 x:{ 14 // 水平方向绝对位置 15 valueFn:function () { 16 var self = this; 17 // 读到这里时,el 一定是已经加到 dom 树中了,否则报未知错误 18 // el 不在 dom 树中 offset 报错的 19 // 最早读就是在 syncUI 中,一点重复设置(读取自身 X 再调用 _uiSetX)无所谓了 20 return self.get("el") && self.get("el").offset().left; 21 } 22 }, 23 y:{ 24 // 垂直方向绝对位置 25 valueFn:function () { 26 var self = this; 27 return self.get("el") && self.get("el").offset().top; 28 } 29 }, 30 zIndex:{ 31 value:ZINDEX 32 } 33 }; 34 35 36 Position.prototype = { 37 38 __createDom:function () { 39 this.get("el").addClass("ks-ext-position"); 40 }, 41 42 _uiSetZIndex:function (x) { 43 this.get("el").css("z-index", x); 44 }, 45 46 _uiSetX:function (x) { 47 this.get("el").offset({ 48 left:x 49 }); 50 }, 51 52 _uiSetY:function (y) { 53 this.get("el").offset({ 54 top:y 55 }); 56 } 57 }; 58 59 return Position; 60 });