UNPKG

lettuce

Version:

Lettuce JS, Mini Mobile Framework for Romantic with DSL.

51 lines (50 loc) 1.55 kB
/** * @author:le0 * @email:cwq0312@163.com * @version:1.00.000 */ (function(Q) {// location位置+效果 var win = Q.global, doc = win.document, isNull = Q.isNull, isDom = Q.isDom; // 计算元素的X(水平,左)位置 function pageX(elem) { return elem.offsetParent ? elem.offsetLeft + pageX(elem.offsetParent) : elem.offsetLeft } // 计算元素的Y(垂直,顶)位置 function pageY(elem) { return elem.offsetParent ? elem.offsetTop + pageY(elem.offsetParent) : elem.offsetTop } // 查找元素在其父元素中的水平位置 function parentX(elem) { return elem.parentNode == elem.offsetParent ? elem.offsetLeft : pageX(elem) - pageX(elem.parentNode) } // 查找元素在其父元素中的垂直位置 function parentY(elem) { return elem.parentNode == elem.offsetParent ? elem.offsetTop : pageY(elem) - pageY(elem.parentNode) } Q.fn.extend({ width : function() { var dom = this[0]; return isDom(dom) ? dom.offsetWidth : screen.availWidth }, height : function() { var dom = this[0]; return isDom(dom) ? dom.offsetHeight : screen.availHeight }, offset : function() {// 获取匹配元素在当前视口的相对偏移 if (!this[0]) return null; var obj = this[0].getBoundingClientRect(); return { left : obj.left + win.pageXOffset, top : obj.top + win.pageYOffset }; }, position : function() {// 获取匹配元素相对父元素的偏移。 var o = this[0]; if (!o) return null; return { left : parentX(o), top : parentY(o) } } }); })(Qmik);