1 回答

TA貢獻1860條經驗 獲得超8個贊
比較了一下你的代碼,兩段代碼只有這么一點不一樣
所以可以封裝成一個函數,最多只是 smartFloat_nav
和 smartFloat_mall
調用不同。
共用部分不想暴露出來可以寫成閉包
(function() {
function smartFloat(position1, position2) {
var position = function(element) {
var top = element.position().top;
var left = element.position().left;
pos = element.css("position");
$(window).scroll(function() {
var scrolls = $(this).scrollTop();
if (scrolls >= top) {
if (window.XMLHttpRequest) {
element.css({
position: "fixed",
top: position1,
left: left
});
} else {
element.css({
top: scrolls,
left: left
});
}
} else {
element.css({
position: "absolute",
top: position2,
left: 0,
});
}
});
};
return $(this).each(function() {
position($(this));
});
}
$.fn.smartFloat_mall = function() {
smartFloat("0.81rem", "2.32rem");
};
$.fn.smartFloat_nav = function() {
smartFloat("1.81rem", "2.32rem");
};
})();
添加回答
舉報