MediaWiki:Gadget-heimu-toggle.js

来自H萌文库
艾代米尔留言 | 贡献2026年7月24日 (五) 18:01的版本 (创建页面,内容为“// <pre> (function() { function heimu_toggle() { if (!$('.heimu, .colormu')[0] || $('#heimu_toggle')[0]) return; $(".colormu").each(function() { this.dataset.backgroundColor = $(this).css("background-color"); }); var body = document.body, html = document.documentElement; var innerWidth = window.innerWidth; var scrollbarWidth; switch ("scroll") { case getComputedStyle…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转到导航 跳转到搜索

注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的更改的影响。

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5Ctrl-R(Mac为⌘-R
  • Google Chrome:Ctrl-Shift-R(Mac为⌘-Shift-R
  • Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5
// <pre>
(function() {
    function heimu_toggle() {
        if (!$('.heimu, .colormu')[0] || $('#heimu_toggle')[0]) return;
        $(".colormu").each(function() {
            this.dataset.backgroundColor = $(this).css("background-color");
        });
        var body = document.body,
            html = document.documentElement;
        var innerWidth = window.innerWidth;
        var scrollbarWidth;
        switch ("scroll") {
            case getComputedStyle(body).overflowY:
                scrollbarWidth = innerWidth - body.clientWidth;
                break;
            case getComputedStyle(html).overflowY:
                scrollbarWidth = innerWidth - html.clientWidth;
                break;
            default:
                var backup = body.style.overflowY;
                body.style.overflowY = "scroll";
                scrollbarWidth = innerWidth - body.clientWidth;
                body.style.overflowY = backup;
        }
        var btn = $('<div/>', {
            id: 'heimu_toggle',
            text: '半隐黑幕',
            css: {
                'user-select': 'none',
            },
        }).appendTo(document.body).on('click', function() {
            if ($('body.heimu_toggle_on')[0]) $(this).text('半隐黑幕');
            else $(this).text('隐藏黑幕');
            $(document.body).toggleClass('heimu_toggle_on');
            $(".colormu").each(function() {
                if ($(this).hasClass("colormu_toggle_on")) {
                    $(this).removeClass("colormu_toggle_on");
                    $(this).css("background-color", this.dataset.backgroundColor);
                } else {
                    $(this).addClass("colormu_toggle_on");
                    $(this).css("background-color", this.dataset.backgroundColor.replace("rgb", "rgba").replace(")", ", .17)"));
                }
            });
        });
        if (scrollbarWidth === 0) {
            btn.css("right", "20px"); // 修复新版 Chrome 的自动隐藏式滚动条导致的按钮被覆盖 chrome://flags/#overlay-scrollbars
        }
        if ($('.backToTop')[0]) $(window).on('scroll', function() {
            $(document).scrollTop() > 0 ? btn.css('bottom', '193px') : btn.css('bottom', '100px');
        }).scroll();
        if (mw.config.get('AnnToolsHeimuToggleDefaultOn')) btn.click();
        else mw.config.set('AnnToolsHeimuToggleDefaultOn', true);
    }
    setInterval(heimu_toggle, 3000);
})();
// </pre>