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 });