Greasy Fork

Greasy Fork is available in English.

MCBBS 自定义背景

自定义mcbbs的背景

当前为 2020-05-15 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         MCBBS 自定义背景
// @namespace    http://fang.blog.miri.site/
// @version      2.2.1
// @icon         https://s2.ax1x.com/2020/02/25/3twNzq.png
// @description  自定义mcbbs的背景
// @author       Mr_Fang
// @match        https://*.mcbbs.net/*
// @grant        none
// ==/UserScript==

(function() {
    // 定义变量
    var storage = window.localStorage;
    var mbg_url = storage.getItem('mbg_url');
    var mbg_opacity = storage.getItem('mbg_opacity');
    var mbg_border_top = storage.getItem('mbg_border_top');
    var version = "2.2.1"; // 不要动版本号

    // 更新提醒
    if(storage.getItem('mbg_version') != version){
        showDialog('<style>.alert_right {background-image: none;padding-right: 0px;padding-left: 0px;}</style><div class=""><b>MCBBS 自定义背景已成功从 V'+ storage.getItem('mbg_version') +' 更新至 V'+ version +'</b><hr><p>此次更新内容:</p> <p ><ol style="margin-left: 25px"><li>解决了搜索页面脚本不生效的问题</li><li>添加了更新提醒</li><li>更改了应用透明度样式的元素</li></ol></p></div>',
                   'right',
                   '<div style="line-height:30px;"><img src="https://s2.ax1x.com/2020/02/25/3twNzq.png" width="20px"> 自定义背景</div>',
                   function() {
            storage["mbg_version"] = version;
        }
                  );
    }

    console.log(" %c MCBBS 自定义背景 %c V"+ version +" ", "color: #fff; background: #f8981d; padding:5px;", "color:#fff; background: #000; padding:5px;");
    console.log(" %c Made by %c 快乐小方 ", "color: #fff; background: #815098; padding:5px;", "color:#fff; background: #000; padding:5px;");

    // 判断此页中是否存个人信息菜单
    if(jq('.user_info_menu_btn').length>0) {
        // 如存在,在个人信息菜单中添加按钮
        jq('.user_info_menu_btn').append('<li><a id="bg_setting">自定义背景</a></li>');
        // 设置窗口
        document.getElementById('bg_setting').addEventListener('click',function(){
            showDialog('<style>.alert_right {background-image: none;padding-right: 0px;padding-left: 0px;}</style><div class=""><b>点击确定保存 刷新后生效</b><hr><p>自定义背景图 <font color="gray">- 请填写图片链接(多行即启用随机显示)</font></p><textarea id="mbg_url_input" style="width: 98%;" rows="5">' + storage.getItem('mbg_url') + '</textarea><p>透明度 <font color="gray">- 当前' + storage.getItem('mbg_opacity') + '%</font></p><input min="0" max="100" type="range" value="' + storage.getItem('mbg_opacity') + '" id="mbg_opacity_input" style="width: 98%;"><font>0%</font><font style="float: right;">100%</font><p>自定义挂件 <font color="gray">- 请填写图片链接(留空或null即不显示)</font></p><input id="mbg_border_top_input" value="'+ storage.getItem('mbg_border_top') +'" style="width: 98%;" ></div>',
                       'right',
                       '<div style="line-height:30px;"><img src="https://s2.ax1x.com/2020/02/25/3twNzq.png" width="20px"> 自定义背景</div>',
                       function() {
                storage["mbg_url"] = document.getElementById("mbg_url_input").value;
                storage["mbg_opacity"] = document.getElementById("mbg_opacity_input").value;
                storage["mbg_border_top"] = document.getElementById("mbg_border_top_input").value;
            }
                      );
        })
    }


    mbg_url = "['" + storage.getItem('mbg_url') + "']";
    var n = mbg_url.split('\n').length - 1;
    for(var l=0;l<n;l++){
        mbg_url = mbg_url.replace('\n',"','");
        //console.log(mbg_url);
    }

    var mbg_urlList = eval("(" + mbg_url + ")");
    console.log(mbg_urlList);

    var hsv = mbg_urlList.length; // 获取数组长度
    var ran = Math.floor(Math.random()*hsv); // 取0至数组最大下标值中的随机数(因为floor是向下取整)


    // 判断是背景否为空
    if(mbg_urlList == null){
        mbg_urlList = ['https://www.mcbbs.net/template/mcbbs/image/body_bg.jpg'];
    }

    // 判断透明度是否为空
    if(mbg_opacity == null){
        mbg_opacity = 100;
    }

    // 判断挂件是否为空
    if(mbg_border_top != null){
        // 这个挂件是论坛自带的,但是被注释掉了
        // 泥潭吉祥物泥猪的路径地址:template/mcbbs/image/muddy_pig_subhero_updated6-19.png
        jq('<img class="mc_top" src="' + mbg_border_top + '" draggable="false"/>').insertBefore(".mc_map_border_top");
    }

    // 在head里添加css
    jq("head").append('<style id="mbg_css">img.mc_top{z-index:99;} #body_fixed_bg {background-image: url(' + mbg_urlList[ran] + '); background-position: center; height: 100%;} div.mc_map_wp,div.bw0 { opacity: ' + mbg_opacity/100 + '; transition: opacity 0.5s; -webkit-transition: opacity 0.5s; } div.mc_map_wp:hover,div.bw0:hover { opacity: 1; }</style>');

})();