您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Hide Scrollbars in Firefox
当前为
// ==UserScript== // @name Firefox Hide Scrollbars // @namespace http://tampermonkey.net/ // @version 1.0.4 // @description Hide Scrollbars in Firefox // @author qashto // @match *://*/* // @grant none // @require https://code.jquery.com/jquery-3.3.1.min.js // ==/UserScript== /*! * jQuery Mousewheel 3.1.13 * https://github.com/jquery/jquery-mousewheel/edit/master/jquery.mousewheel.min.js * * Copyright jQuery Foundation and other contributors * Released under the MIT license * http://jquery.org/license */ ! function(a) { 'function' == typeof define && define.amd ? define(['jquery'], a) : 'object' == typeof exports ? module.exports = a : a(jQuery) }(function(a) { function b(b) { var g = b || window.event, h = i.call(arguments, 1), j = 0, l = 0, m = 0, n = 0, o = 0, p = 0; if (b = a.event.fix(g), b.type = 'mousewheel', 'detail' in g && (m = -1 * g.detail), 'wheelDelta' in g && (m = g.wheelDelta), 'wheelDeltaY' in g && (m = g.wheelDeltaY), 'wheelDeltaX' in g && (l = -1 * g.wheelDeltaX), 'axis' in g && g.axis === g.HORIZONTAL_AXIS && (l = -1 * m, m = 0), j = 0 === m ? l : m, 'deltaY' in g && (m = -1 * g.deltaY, j = m), 'deltaX' in g && (l = g.deltaX, 0 === m && (j = -1 * l)), 0 !== m || 0 !== l) { if (1 === g.deltaMode) { var q = a.data(this, 'mousewheel-line-height'); j *= q, m *= q, l *= q } else if (2 === g.deltaMode) { var r = a.data(this, 'mousewheel-page-height'); j *= r, m *= r, l *= r } if (n = Math.max(Math.abs(m), Math.abs(l)), (!f || f > n) && (f = n, d(g, n) && (f /= 40)), d(g, n) && (j /= 40, l /= 40, m /= 40), j = Math[j >= 1 ? 'floor' : 'ceil'](j / f), l = Math[l >= 1 ? 'floor' : 'ceil'](l / f), m = Math[m >= 1 ? 'floor' : 'ceil'](m / f), k.settings.normalizeOffset && this.getBoundingClientRect) { var s = this.getBoundingClientRect(); o = b.clientX - s.left, p = b.clientY - s.top } return b.deltaX = l, b.deltaY = m, b.deltaFactor = f, b.offsetX = o, b.offsetY = p, b.deltaMode = 0, h.unshift(b, j, l, m), e && clearTimeout(e), e = setTimeout(c, 200), (a.event.dispatch || a.event.handle).apply(this, h) } } function c() { f = null } function d(a, b) { return k.settings.adjustOldDeltas && 'mousewheel' === a.type && b % 120 === 0 } var e, f, g = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll'], h = 'onwheel' in document || document.documentMode >= 9 ? ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'], i = Array.prototype.slice; if (a.event.fixHooks) for (var j = g.length; j;) a.event.fixHooks[g[--j]] = a.event.mouseHooks; var k = a.event.special.mousewheel = { version: '3.1.12', setup: function() { if (this.addEventListener) for (var c = h.length; c;) this.addEventListener(h[--c], b, !1); else this.onmousewheel = b; a.data(this, 'mousewheel-line-height', k.getLineHeight(this)), a.data(this, 'mousewheel-page-height', k.getPageHeight(this)) }, teardown: function() { if (this.removeEventListener) for (var c = h.length; c;) this.removeEventListener(h[--c], b, !1); else this.onmousewheel = null; a.removeData(this, 'mousewheel-line-height'), a.removeData(this, 'mousewheel-page-height') }, getLineHeight: function(b) { var c = a(b), d = c['offsetParent' in a.fn ? 'offsetParent' : 'parent'](); return d.length || (d = a('body')), parseInt(d.css('fontSize'), 10) || parseInt(c.css('fontSize'), 10) || 16 }, getPageHeight: function(b) { return a(b).height() }, settings: { adjustOldDeltas: !0, normalizeOffset: !0 } }; a.fn.extend({ mousewheel: function(a) { return a ? this.bind('mousewheel', a) : this.trigger('mousewheel') }, unmousewheel: function(a) { return this.unbind('mousewheel', a) } }) }); $(function() { const er = console.error; const log = console.log; $('html, body').css('overflow', 'hidden'); // https://stackoverflow.com/a/29956714/3792062 $.fn.isHScrollable = function() { return this[0].scrollWidth > this[0].clientWidth; }; $.fn.isVScrollable = function() { return this[0].scrollHeight > this[0].clientHeight; }; $.fn.isScrollable = function() { return this[0].scrollWidth > this[0].clientWidth || this[0].scrollHeight > this[0].clientHeight; }; let scrollPageX = true; let scrollPageY = true; $('html, body').mousewheel(function(event) { if (scrollPageX && scrollPageY) { event.preventDefault(); } if (scrollPageX && scrollPageY && Math.abs(event.deltaX) > Math.abs(event.deltaY)) { this.scrollLeft += event.deltaX * event.deltaFactor; } if (scrollPageY && Math.abs(event.deltaX) < Math.abs(event.deltaY)) { this.scrollTop -= event.deltaY * event.deltaFactor; } log( event.deltaX, event.deltaY, event.deltaFactor, event.originalEvent.deltaMode, event.originalEvent.wheelDelta ); }); });