kidzgy
火狐狸
火狐狸
  • UID35190
  • 注册日期2011-02-03
  • 最后登录2024-03-28
  • 发帖数248
  • 经验196枚
  • 威望0点
  • 贡献值122点
  • 好评度17点
阅读:1036回复:0

UC脚本悬浮滚动条的BUG

楼主#
更多 发布于:2020-10-07 11:29
测试网页:https://addons.mozilla.org/zh-CN/firefox/addon/ublock-origin/?utm_source=addons.mozilla.org&utm_medium=referral&utm_content=featured 以及微博聊天网页版



在ublock-origin扩展页面随便点一个预览图,可以看到点击预览图之前页面的滚动条的z-index高于预览图了,如果不启用悬浮滚动条的话,预览图界面的两个滚动条应该是不会出现的。
在微博聊天网页版也是,滚动条除了悬浮滚动条之外,微博本身自己也有个滚动条,导致出现了两个滚动条。像这种问题能修复吗?



// ==UserScript==
// @name          FloatingScrollbar.uc.js
// @namespace  nightson1988@gmail.com
// @include        main
// @version        fix 70+
// @version        fix 67+,修正在微信网页版,暴力猴编辑器上的滚动条错误 by @runningcheese
// @version        0.0.3
// @note           Thanks to Griever(https://github.com/Griever/userChromeJS/blob/master/SmartScrollbar.uc.js) and Paul Rouget(https://gist.github.com/4003205)
// @note...........0.0.3 Fixed a problem of breaking hbox layout 
// @note           0.0.2 Remove usage of E4X (https://bugzilla.mozilla.org/show_bug.cgi?id=788293)
// ==/UserScript==
 
(function () {
    var prefs = Services.prefs,
        enabled;
    if (prefs.prefHasUserValue('userChromeJS.floating_scrollbar.enabled')) {
        enabled = prefs.getBoolPref('userChromeJS.floating_scrollbar.enabled')
    } else {
        prefs.setBoolPref('userChromeJS.floating_scrollbar.enabled', true);
        enabled = true;
    }
 
 var css = '\
    @namespace url(http: //www.mozilla.org/keymaster/gatekeeper/there.is.only.xul);\
    @-moz-document regexp("((?!wx2.qq.com).)*"){\
    scrollbar {\
        -moz-appearance: none!important;\
        position: relative;\
        background-color: transparent;\
        background-image: none;\
        z-index: 100000;\
        padding: 0px;\
    }\
    scrollbar[orient = "vertical"] {\
        -moz-margin-start: -12px;\
        min-width: 12px;\
    }\
    scrollbar[orient = "vertical"] thumb {\
        min-height: 60px;\
    }\
   scrollbar[orient = "horizontal"] {\
        margin-top: -12px;\
        min-height: 12px;\
    }\
    scrollbar[orient = "horizontal"] thumb {\
        min-width: 60px;\
    }\
    scrollbar thumb {\
        -moz-appearance: none!important;\
        border-width: 0px!important;\
        border-radius: 5px!important;\
        background-color: rgba(0, 133, 234, 0.6)!important;\
    }\
    scrollbar:hover thumb{\
        background-color: #0085ea!important;\
    }\
    scrollbar:active thumb{\
        background-color: #0085ea!important;\
    }\
    scrollbar scrollbarbutton,scrollbar gripper{\
        display: none;}\
}\
    @-moz-document url-prefix("moz-extension://"){\
    scrollbar {\
         z-index: 2000!important;\
    }}\
   }';
 
    var sss = Cc['@mozilla.org/content/style-sheet-service;1'].getService(Ci.nsIStyleSheetService);
    var uri = makeURI('data:text/css;charset=UTF=8,' + encodeURIComponent(css));
 
   
 
    if (enabled) {
        sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
    }
 
    function command() {
        if (sss.sheetRegistered(uri, sss.AGENT_SHEET)) {
            prefs.setBoolPref('userChromeJS.floating_scrollbar.enabled', false);
            sss.unregisterSheet(uri, sss.AGENT_SHEET);
            m.setAttribute('checked', false);
        } else {
            prefs.setBoolPref('userChromeJS.floating_scrollbar.enabled', true);
            sss.loadAndRegisterSheet(uri, sss.AGENT_SHEET);
            m.setAttribute('checked', true);
        }
 
        let root = document.documentElement;
        let display = root.style.display;
        root.style.display = 'none';
        window.getComputedStyle(root).display; // Flush
        root.style.display = display;
    }
 
})();
游客

返回顶部