GameMale
登陆 / 注册 搜索

USERCENTER

SEARCHSITE

搜索

查看: 1175|回复: 56
收起左侧

[功能优化] 自定义GM左侧背景+自定义头条图片

  [复制链接] |关注本帖

卡斯迪奥我的路从时间蜿蜒而出男巫之歌女巫之路『伊黎丝的赞美词』『星河碎片』『流星赶月:宙刃』『林中过夜』『厢庭望远』幸运女神的微笑

     楼主| Hadley0T 发表于 前天 12:10 | 显示全部楼层 |阅读模式 <


    看黑色的男人看腻了(没有说BOOW不好的意思,也没有说头条不好看,现在我已经看腻了关了脚本了),就找AI跑了一下替换掉这两个图片的脚本。虽然AI总是给我出一点奇怪的乱子。

    使用方法很简单,将需要的图片链接在代码里替换一下就行了。


    如图所示,需要注意下图片的尺寸大小。

    左侧背景为620*1135

    头条图为1500*338



    最终效果展示如图,可能会非常花里胡俏。如果马老师可以出个简化首页的脚本就更好了。主页的黑色配色其实我一直觉得看着有点难受不够简洁来着(虽然自定义图片后看起来更像是某种GV网站了)。无奈主题的黑暗模式也不是反色,而是更暗。

    因为是本地的所以你自己用更黄更暴力的图都没问题。

    后面一堆有的没的应该可以直接优化下,大佬们就可以自己动手了。或者直接在帖子里帮我优化下也行。白嫖下大佬(X



    1. <div>// ==UserScript==
    2. // [url=home.php?mod=space&uid=668096]@Name[/url]         GameMale 左侧背景+头图双自定义
    3. // @namespace    https://www.gamemale.com/
    4. // @version      2.0
    5. // @description  同时自定义左侧 wp-bg 背景和 portal_block_summary 头图,独立配置无冲突
    6. // @author       You
    7. // [url=home.php?mod=space&uid=700810]@Match[/url]        https://www.gamemale.com/*
    8. // @grant        none
    9. // ==/UserScript==

    10. (function() {
    11.     'use strict';

    12.     // ====================== 自定义配置区(修改这里即可)======================
    13.     // 1. 左侧背景(wp-bg)配置
    14.     const CUSTOM_BG_URL = "图片直链"; // 620*1135 外链
    15.     const ENABLE_CUSTOM_BG = true; // true=启用,false=恢复默认

    16.     // 2. 头图(portal_block_summary)配置
    17.     const CUSTOM_IMG_URL = "图片直链"; // 建议1500*338 外链
    18.     const ENABLE_CUSTOM_IMG = true; // true=启用,false=恢复默认
    19.     // ======================================================================

    20.     // ------------------------------ 左侧背景(wp-bg)替换逻辑 ------------------------------
    21.     // 注入左侧背景样式(保持原布局兼容)
    22.     const bgStyle = document.createElement('style');
    23.     bgStyle.textContent = `
    24.         .wp-bg {
    25.             position: fixed !important;
    26.             top: 0 !important;
    27.             overflow: hidden !important;
    28.             margin-left: -502px !important;
    29.             width: 620px !important;
    30.             height: 100% !important;
    31.             min-height: 700px !important;
    32.             background-size: auto 100% !important;
    33.             background-repeat: no-repeat !important;
    34.             background-position: top left !important;
    35.             background-color: #0C0C0E !important;
    36.         }
    37.     `;
    38.     document.head.appendChild(bgStyle);

    39.     // 左侧背景核心替换函数
    40.     function setCustomBackground() {
    41.         let wpBgElement = document.querySelector('.wp-bg');

    42.         // 未找到元素时自动创建适配结构
    43.         if (!wpBgElement) {
    44.             wpBgElement = document.createElement('div');
    45.             wpBgElement.className = 'wp-bg';
    46.             wpBgElement.innerHTML = '<span></span><div></div>';
    47.             const wrapperBody = document.querySelector('.wrapper-body');
    48.             if (wrapperBody) {
    49.                 wrapperBody.parentNode.insertBefore(wpBgElement, wrapperBody);
    50.             } else {
    51.                 document.body.insertBefore(wpBgElement, document.body.firstChild);
    52.             }
    53.         }

    54.         // 保存默认背景(避免重复覆盖)
    55.         if (!window.defaultWpBgStyle) {
    56.             window.defaultWpBgStyle = {
    57.                 backgroundImage: wpBgElement.style.backgroundImage || 'url(./template/mwt2/extend/img/hdbg.jpg)',
    58.                 backgroundColor: wpBgElement.style.backgroundColor || '#0C0C0E'
    59.             };
    60.         }

    61.         // 根据配置设置背景
    62.         if (ENABLE_CUSTOM_BG && CUSTOM_BG_URL) {
    63.             const urlRegex = /^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([\/\w.-]*)*\/?$/;
    64.             if (urlRegex.test(CUSTOM_BG_URL)) {
    65.                 wpBgElement.style.backgroundImage = `url(${CUSTOM_BG_URL})`;
    66.             } else {
    67.                 console.warn('左侧背景脚本:外链格式错误,已恢复默认');
    68.                 wpBgElement.style.backgroundImage = window.defaultWpBgStyle.backgroundImage;
    69.             }
    70.         } else {
    71.             wpBgElement.style.backgroundImage = window.defaultWpBgStyle.backgroundImage;
    72.             wpBgElement.style.backgroundColor = window.defaultWpBgStyle.backgroundColor;
    73.         }
    74.     }

    75.     // ------------------------------ 头图(portal_block_summary)替换逻辑 ------------------------------
    76.     // 注入头图样式(自适应缩放)
    77.     const imgStyle = document.createElement('style');
    78.     imgStyle.textContent = `
    79.         .portal_block_summary > img {
    80.             width: 100% !important;
    81.             height: auto !important;
    82.             object-fit: contain !important;
    83.             max-width: 100% !important;
    84.             border: none !important;
    85.             outline: none !important;
    86.         }
    87.         .portal_block_summary {
    88.             position: relative !important;
    89.             overflow: hidden !important;
    90.         }
    91.     `;
    92.     document.head.appendChild(imgStyle);

    93.     // 头图核心替换函数
    94.     function replacePortalImgOnly() {
    95.         const targetImgs = document.querySelectorAll('.portal_block_summary > img');
    96.         if (!targetImgs.length) {
    97.             console.warn('头图脚本:未找到目标 img 元素,暂不生效');
    98.             return;
    99.         }

    100.         targetImgs.forEach(img => {
    101.             // 保存原图 src(仅首次记录)
    102.             if (!window.defaultPortalImgSrc) {
    103.                 window.defaultPortalImgSrc = img.src;
    104.             }

    105.             // 根据配置替换 src
    106.             if (ENABLE_CUSTOM_IMG && CUSTOM_IMG_URL) {
    107.                 const urlRegex = /^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([\/\w.-]*\/?)$/;
    108.                 if (urlRegex.test(CUSTOM_IMG_URL)) {
    109.                     img.src = CUSTOM_IMG_URL;
    110.                     img.dataset.customSrc = CUSTOM_IMG_URL; // 标记自定义状态
    111.                 } else {
    112.                     console.warn('头图脚本:外链格式错误,已恢复默认');
    113.                     restorePortalImg(img);
    114.                 }
    115.             } else {
    116.                 restorePortalImg(img);
    117.             }
    118.         });
    119.     }

    120.     // 头图恢复默认函数
    121.     function restorePortalImg(img) {
    122.         if (window.defaultPortalImgSrc) {
    123.             img.src = window.defaultPortalImgSrc;
    124.             img.removeAttribute('data-custom-src');
    125.         }
    126.     }

    127.     // ------------------------------ 统一执行与监听逻辑(避免冲突) ------------------------------
    128.     // 页面加载完成后执行双替换
    129.     function initAllReplace() {
    130.         setCustomBackground();
    131.         replacePortalImgOnly();
    132.     }

    133.     if (document.readyState === "complete" || document.readyState === "interactive") {
    134.         initAllReplace();
    135.     } else {
    136.         document.addEventListener('DOMContentLoaded', initAllReplace);
    137.     }

    138.     // 统一监听页面变化(轻量化,避免重复监听)
    139.     const observer = new MutationObserver((mutations) => {
    140.         mutations.forEach(mutation => {
    141.             // 监听左侧背景相关变化
    142.             if (mutation.addedNodes.length > 0 && ENABLE_CUSTOM_BG) {
    143.                 const wpBg = document.querySelector('.wp-bg');
    144.                 if (wpBg && !wpBg.style.backgroundImage.includes(CUSTOM_BG_URL)) {
    145.                     setCustomBackground();
    146.                 }
    147.             }

    148.             // 监听头图相关变化
    149.             if (ENABLE_CUSTOM_IMG) {
    150.                 const isTargetImgChange = mutation.type === 'attributes' &&
    151.                     mutation.target.tagName === 'IMG' &&
    152.                     mutation.target.closest('.portal_block_summary') &&
    153.                     mutation.attributeName === 'src';
    154.                 const isTargetBlockAdded = mutation.addedNodes.length > 0 &&
    155.                     mutation.target.classList.contains('portal_block_summary');

    156.                 if (isTargetImgChange || isTargetBlockAdded) {
    157.                     const targetImg = mutation.target.tagName === 'IMG' ? mutation.target : mutation.target.querySelector('img');
    158.                     if (targetImg && targetImg.dataset.customSrc !== CUSTOM_IMG_URL) {
    159.                         replacePortalImgOnly();
    160.                     }
    161.                 }
    162.             }
    163.         });
    164.     });

    165.     // 启动监听(仅监听必要事件,最小化性能影响)
    166.     observer.observe(document.body, {
    167.         childList: true,
    168.         subtree: true,
    169.         attributes: true,
    170.         attributeFilter: ['src']
    171.     });
    172. })();</div>
    复制代码



    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x

    评分

    参与人数 10血液 +21 追随 +10 堕落 +6 收起 理由
    chxzck999 + 1 + 1 感谢分享
    LIFERERL + 1
    艾维叶叶 + 3 + 1 + 1 感谢分享
    Fogram + 1 感谢分享
    PURO_ + 3 + 1 + 1 fantastic
    庹旯 + 6 + 1 + 1 公开出柜惹
    cinder + 1 + 1 + 1
    是阿行嘞 + 1 感谢分享
    LionHeart + 3 + 1 + 1 美美吸入
    RaSharim + 1 美美吸入

    查看全部评分

    回复

    使用道具 举报

    史莱哲林Amicus可鲁贝洛斯崩朽之青铜龙王隐秘的讯息秘林魔典王者之盾莱因哈特·威尔海姆守护者三角头

      因本 发表于 前天 12:17 | 显示全部楼层 <
      回复

      使用道具 举报

      我的天使GM吸血伯爵吃饱金币的Doge苏格兰圆脸胖鸡小小舞台守卫: 坚守眼位永浴爱河肉垫手套御医神兔『搓粉团珠』

        毛茸茸兽兽 发表于 前天 12:24 | 显示全部楼层 <
        惹~这下更不敢在外面打开泥潭了()就是估计会错过头条的活动预告咯,不过后面会有活动预热帖,问题也不大
        回复

        使用道具 举报

        光明奇幻木偶『天圆地方』Amicus鎏彩万幢女巫之路虚空之海的鲸永远的克叔業火死鬥实现梦想官复原职

          娱乐法师火布偶 发表于 前天 12:27 | 显示全部楼层 <
          不是一个人住的坛友还是要注意不要换上大尺度图片,要不然就是马上公开出柜了
          回复

          使用道具 举报

          【夏日限定】夏日的泰凯斯裸体克里斯男用贞操带不曾寄出的信件破损的旧书雪王的心脏幽灵竹筒冒险用指南针GM論壇榮譽勛章龙腾世纪:审判

            crino66666 发表于 前天 12:28 | 显示全部楼层 <
            回复

            使用道具 举报

            冒险用指南针『随时随地开启!』破损的旧书『随时随地开启!』雪王的心脏人鱼之泪苏格兰圆脸胖鸡[Pro Max]丛林的鸟飞走了不曾寄出的信件幽灵竹筒

              凯诺斯 发表于 前天 12:37 | 显示全部楼层 <
              回复

              使用道具 举报

              阿努比斯信徒

                野生阿努厨 发表于 前天 12:38 | 显示全部楼层 <
                回复

                使用道具 举报

                肉乖乖旧日支配者—克苏鲁業火死鬥魔法不朽·传奇不熄十年一梦帅气的本・比格炙热的格拉迪欧拉斯炽焰咆哮虎永浴爱河男巫之歌

                  Burry 发表于 前天 12:44 | 显示全部楼层 <
                  回复

                  使用道具 举报

                  漂洋小船隔墙有眼丛林的鸟飞走了冒险用指南针苏格兰圆脸胖鸡[Pro Max]幽灵竹筒最终幻想XIV龙腾世纪:审判都市:天际线2

                    LionHeart 发表于 前天 12:53 | 显示全部楼层 <
                    回复

                    使用道具 举报

                    腐化龙幼崽瑞雪兆丰年,生灵万物新驯化红龙幼崽

                      Sloanx 发表于 前天 12:54 | 显示全部楼层 <
                      回复

                      使用道具 举报

                      Amicus【新春限定】果体 隆永远的克叔亚瑟‧摩根You Can Pet Blaidd業火死鬥传奇史莱姆牧场虚空之海的鲸自定义男从Homunculus

                        Destin 发表于 前天 13:11 | 显示全部楼层 <
                        回复

                        使用道具 举报

                        萨赫的蛋糕神秘商店贵宾卡業火死鬥传奇竹取物语Amicus虚空之海的鲸『厢庭望远』『搓粉团珠』『天圆地方』

                          柏芸 发表于 前天 13:12 | 显示全部楼层 <
                          好东西啊这是,以后喜欢的图就可以直接放在GM上一直看见了,感觉你坛真的快变成泥潭暖暖
                          回复

                          使用道具 举报

                          勋章空位插槽【圣诞限定】心心念念小雪人适当显灵

                            reober3 发表于 前天 13:31 | 显示全部楼层 <
                            感谢分享~有了自定义,使用起来就能更舒服惹
                            (看起来gm网页的布局和浏览器还有显示器分辨率真的有很大关系,我这里的黑色男人背景只有窄窄一条边,注册了好久才发现不是随意的花纹而是一堆男人
                            回复

                            使用道具 举报

                            眼镜蛇图腾雷霆晶球光明奇幻木偶Amicus『天圆地方』瑞雪兆丰年,生灵万物新

                              Adam123456 发表于 前天 13:34 | 显示全部楼层 <
                              回复

                              使用道具 举报

                              『钟楼盐水棒冰』未知纸盒『南瓜拿铁』幸运女神的微笑『冰雕马拉橇』『逆境中的幸运女神』纯真护剑 · 这把剑守护每个孩子无论他有没有被神选中『厢庭望远』

                                是阿行嘞 发表于 前天 13:40 | 显示全部楼层 <

                                很好用的东西,我将把眼睛图片贴满侧边栏
                                但感觉过段时间还是会回归经典款,不过用着先噜
                                回复

                                使用道具 举报

                                飞天小糖果光明奇幻木偶Amicus人到中年裸体克里斯【圣诞限定】心心念念小雪人隐秘的讯息黑曜石赤螯蝎虚空之海的鲸网中的皮卡丘

                                  cinder 发表于 前天 13:51 | 显示全部楼层 <
                                  回复

                                  使用道具 举报

                                  鎏彩万幢岛田半藏普隆普特·阿金塔姆神奇四叶草格拉迪欧拉斯皮尔斯‧尼凡斯裸体克里斯亚当‧简森暗影烈焰

                                    哟哟hoho 发表于 前天 14:10 | 显示全部楼层 <
                                    回复

                                    使用道具 举报

                                      咸鱼鱼 发表于 前天 14:14 | 显示全部楼层 <
                                      回复

                                      使用道具 举报

                                      猫咪点唱机永远的克叔【圣诞限定】心心念念小雪人金钱马车猎个痛快!月影狼幸福的小阿尔睡着的小伯纯真护剑 · 这把剑守护每个孩子无论他有没有被神选中崩朽之青铜龙王

                                        小晨风 发表于 前天 14:44 | 显示全部楼层 <
                                        回复

                                        使用道具 举报

                                        风物长宜上古卷轴V:天际云游中的助祭小小舞台森林羊男牧羊人寻觅

                                          Cuda 发表于 前天 14:54 | 显示全部楼层 <
                                          回复

                                          使用道具 举报

                                          您需要登录后才可以回帖 登录 | 立即注册

                                          本版积分规则

                                          关闭

                                          站长公告上一条 /1 下一条

                                          文字版|手机版|小黑屋|GameMale

                                          GMT+8, 2026-2-6 08:31 , Processed in 0.146517 second(s), 146 queries , Redis On.

                                          Copyright © 2013-2026 GameMale

                                          All Rights Reserved.

                                          快速回复 返回列表