您似乎还未注册一个账号?我们强烈推荐您点击此处创建一个账户。|如果您在H萌娘上发现某些内容错误/空缺/不中立,请勇于按右上角编辑按钮!

MediaWiki:Gadget-heimu-toggle.js

H萌娘,万物皆可H的百科全书!
跳转到导航 跳转到搜索

注意:这类代码页面在保存之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。

// <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>