function ScrollSetTop(jqueryObj, fClass) { if (typeof ScrollSetTop.default === "undefined") ScrollSetTop.default = { topArr: [], top: 0 }; var defalutSetting = ScrollSetTop.default; var topArr = defalutSetting.topArr; if (typeof fClass === "undefined") fClass = "fixedtop"; var s = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0; return setTop(jqueryObj, s); function contains(arr, obj) { var i = arr.length; while (i--) { if (arr[i][0] === obj) { return i; } } return -1; } function setTop(obj, s) { var i = contains(topArr, obj); var top = defalutSetting.top; if (i < 0) { var objTop = obj.offset().top; if (s + top > objTop) { var nObj = obj.clone(true); nObj.addClass(fClass); obj.after(nObj); topArr.push([obj, objTop - top, nObj]); defalutSetting.top += nObj.height(); return nObj; } } else if (i == topArr.length - 1) { var onetop = topArr[i]; if (s <= onetop[1]) { var nObj = onetop[2]; defalutSetting.top -= nObj.height(); nObj.remove(); topArr.pop(); } } } }