JavaScript   发布时间:2022-04-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了jQuery scrollFix滚动定位插件大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

当用户向上或向下滚动页面到一定位置时,目标元素开始固定定位(position:fixed),当回滚到原位置时目标元素恢复到原状态,可以定制触发滚动相对屏幕位置和触发滚动方向,兼容IE6

【插件参数】

$(".target_element").scrollFix( [ "top" | "bottom" | length(可以为负,表示相对bottom),[ "top" | "bottom" ] ]);

第一个参数: 可选,默认为"top",当目标元素到了屏幕相对的位置时开始触发固定,可以填一个数值,如100,-200,负值表示相对于屏幕下方

第一个参数: 可选,默认为"top",表示触发固定的滚动方向,"top"表示从上向下滚动时触发,"bottom"表示从下向上滚动时触发

【下载插件】

代码如下:@H_262_15@
@H_262_15@

核心代码:

{ jQuery.fn.scrollFix = function(height,dir) { height = height || 0; height = height == "top" ? 0 : height; return this.each(function() { if (height == "bottom") { height = document.documentElement.clientHeight - this.scrollHeight; } else if (height < 0) { height = document.documentElement.clientHeight - this.scrollHeight + height; } var that = $(this),oldHeight = false,p,r,l = that.offset().left; dir = dir == "bottom" ? dir : "top"; //默认滚动方向向下 if (window.XMLhttprequest) { //非ie6用fixed
function getHeight() { //>=0表示上面的滚动高度大于等于目标高度
 return (document.documentElement.scrollTop || document.body.scrollTop) + height - that.offset().top;
}
$(window).scroll(function() {
 if (oldHeight === falsE) {
  if ((getHeight() >= 0 && dir == "top") || (getHeight() <= 0 && dir == "bottom")) {
   oldHeight = that.offset().top - height;
   that.css({
    position: "fixed",top: height,left: l
   });
  }
 } else {
  if (dir == "top" && (document.documentElement.scrollTop || document.body.scrollTop) < oldHeight) {
   that.css({
    position: "static"
   });
   oldHeight = false;
  } else if (dir == "bottom" && (document.documentElement.scrollTop || document.body.scrollTop) > oldHeight) {
   that.css({
    position: "static"
   });
   oldHeight = false;
  }
 }
});

} else { //for ie6
$(window).scroll(function() {
if (oldHeight === falsE) { //恢复前只执行一次,减少reflow
if ((getHeight() >= 0 && dir == "top") || (getHeight() <= 0 && dir == "bottom")) {
oldHeight = that.offset().top - height;
r = document.createElement("span");
p = that[0].parentNode;
p.replaceChild(r,that[0]);
document.body.appendChild(that[0]);
that[0].style.position = "absolute";
}
} else if ((dir == "top" && (document.documentElement.scrollTop || document.body.scrollTop) < oldHeight) || (dir == "bottom" && (document.documentElement.scrollTop || document.body.scrollTop) > oldHeight)) { //结束
that[0].style.position = "static";
p.replaceChild(that[0],r);
r = null;
oldHeight = false;
} else { //滚动
that.css({
left: l,top: height + document.documentElement.scrollTop
})
}
});
}
});
};
})(jQuery);

@H_262_15@

大佬总结

以上是大佬教程为你收集整理的jQuery scrollFix滚动定位插件全部内容,希望文章能够帮你解决jQuery scrollFix滚动定位插件所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。