您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
JQuery辅助文本框在浏览器中固定位置,不随浏览器滚动条滚动
当前为
此脚本不应直接安装。它是供其他脚本使用的外部库,要使用该库请加入元指令 // @require https://update.cn-greasyfork.org/scripts/388372/726657/scrollfix.js
- // ==UserScript==
- // @name scrollfix
- // @version 0.0.1
- // @namespace tsharp.js
- // @description JQuery辅助文本框在浏览器中固定位置,不随浏览器滚动条滚动
- // @author jimbo
- // @license GPLv3
- // @match *
- // @icon none
- // @require http://code.jquery.com/jquery-3.4.1.min.js
- // ==/UserScript==
- ; (function ($) {
- 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: "fixed"
- });
- oldHeight = false;
- } else if (dir == "bottom" && (document.documentElement.scrollTop || document.body.scrollTop) > oldHeight) {
- that.css({
- position: "fixed"
- });
- 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 = "absolute";
- p.replaceChild(that[0], r);
- r = null;
- oldHeight = false;
- } else { //滚动
- that.css({
- left: l,
- top: height + document.documentElement.scrollTop
- })
- }
- });
- }
- });
- };
- })(jQuery);