diff --git a/web/static/script/jquery-1.7.2.js b/web/static/script/jquery-1.7.2.js index 63f13ec..80bfc5e 100644 --- a/web/static/script/jquery-1.7.2.js +++ b/web/static/script/jquery-1.7.2.js @@ -9111,6 +9111,7 @@ }; } else { + // 定义一个名为getOffset的函数,用于计算元素的偏移量 getOffset = function( elem, doc, docElem ) { var computedStyle, offsetParent = elem.offsetParent, @@ -9143,6 +9144,7 @@ offsetParent = elem.offsetParent; } + if ( jQuery.support.subtractsBorderForOverflowNotVisible && computedStyle.overflow !== "visible" ) { top += parseFloat( computedStyle.borderTopWidth ) || 0; left += parseFloat( computedStyle.borderLeftWidth ) || 0; @@ -9163,31 +9165,39 @@ return { top: top, left: left }; }; - } - + }; + // 重写jQuery的fn.offset方法,允许对jQuery对象进行偏移量设置或获取 jQuery.fn.offset = function( options ) { + // 判断是否有传入参数,即是否要设置偏移量 if ( arguments.length ) { + // 如果没有传入具体的options参数,即options为undefined,则直接返回当前jQuery对象 return options === undefined ? this : + // 如果有传入参数,则对每个匹配的元素调用jQuery.offset.setOffset方法设置偏移量 this.each(function( i ) { jQuery.offset.setOffset( this, options, i ); }); } + // 获取当前jQuery对象集合中的第一个元素 var elem = this[0], + // 获取该元素的所属文档对象 doc = elem && elem.ownerDocument; + // 如果没有文档对象,说明元素不存在或不是一个DOM元素,返回null if ( !doc ) { return null; } + // 如果元素是文档的body元素,则调用jQuery.offset.bodyOffset方法获取body的偏移量 if ( elem === doc.body ) { return jQuery.offset.bodyOffset( elem ); } + // 对于非body元素,调用getOffset函数获取元素的偏移量 + // getOffset函数需要传入元素本身、文档对象和文档的documentElement(即html元素) return getOffset( elem, doc, doc.documentElement ); }; - jQuery.offset = { // 定义一个对象jQuery.offset,用于处理元素偏移量的相关操作