您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
*://yaohuo.me/*
// ==UserScript== // @name 妖火论坛勋章(紫薇版) // @namespace https://yaohuo-me/ // @version 1.2 // @match *://yaohuo.me/* // @match *://*.yaohuo.me/* // @grant none // @license MIT // @description *://yaohuo.me/* // ==/UserScript== (function() { 'use strict'; // 完整的勋章数据集 - 包含所有提供的勋章 const premiumBadges = [ { title: "赞助红心", src: "/bbs/medal/赞助红心.gif", animation: "heartbeat-red", verticalAdjust: "0" }, { title: "赞助蓝心", src:"bbs/medal/%E8%B5%9E%E5%8A%A9%E8%93%9D%E5%BF%83.gif", animation: "heartbeat-blue", verticalAdjust: "0" }, { title: "43号勋章", src: "/bbs/medal/43.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "认真学习", src: "/bbs/medal/认真学习.gif", animation: "study-pulse", verticalAdjust: "0" }, { title: "67号勋章", src: "/bbs/medal/67.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "圣诞帽", src: "/bbs/medal/%E5%9C%A3%E8%AF%9E%E5%B8%BD.gif", animation: "christmas-twinkle", verticalAdjust: "0" }, { title: "初级勋章", src: "/bbs/medal/初级勋章.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "元旦勋章2015", src: "/bbs/medal/%E5%85%83%E6%97%A6%E5%8B%8B%E7%AB%A02015.gif", animation: "newyear-pulse", verticalAdjust: "0" }, { title: "25号勋章", src: "/bbs/medal/25.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "新年红包", src: "/bbs/medal/新年红包.gif", animation: "redpacket-shake", verticalAdjust: "0" }, { title: "极速前进号勋章", src: "/bbs/medal/70.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "29号勋章", src: "/bbs/medal/29.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "玉兔勋章", src: "/bbs/medal/玉兔勋章.gif", animation: "rabbit-hop", verticalAdjust: "0" }, { title: "万圣节2016", src: "/bbs/medal/万圣节2016.gif", animation: "halloween-glow", verticalAdjust: "0" }, { title: "9号勋章", src: "/bbs/medal/9.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "圣诞礼物", src: "/bbs/medal/圣诞礼物.gif", animation: "christmas-gift", verticalAdjust: "0" }, { title: "元旦勋章2017", src: "/bbs/medal/元旦勋章2017.gif", animation: "newyear-pulse", verticalAdjust: "0" }, { title: "赞助VIP", src: "/bbs/medal/赞助VIP.gif", animation: "vip-glow", verticalAdjust: "0" }, { title: "鸡祥如意", src: "/bbs/medal/%E9%B8%A1%E7%A5%A5%E5%A6%82%E6%84%8F.gif", animation: "rooster-crow", verticalAdjust: "0" }, { title: "灌水天才", src: "/bbs/medal/灌水天才.gif", animation: "water-splash", verticalAdjust: "0" }, { title: "2039500号勋章", src: "/XinZhang/upload/1000/1000_2039500.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "爱国之心", src: "/bbs/medal/爱国之心.gif", animation: "heartbeat-red", verticalAdjust: "0" }, { title: "万圣节2017", src: "/bbs/medal/万圣节2017.gif", animation: "halloween-glow", verticalAdjust: "0" }, { title: "圣诞老人", src: "/bbs/medal/圣诞老人.gif", animation: "santa-shake", verticalAdjust: "0" }, { title: "元宵节2018", src: "/bbs/medal/元宵节2018.gif", animation: "lantern-glow", verticalAdjust: "0" }, { title: "风车", src: "/bbs/medal/风车.gif", animation: "windmill-glow", verticalAdjust: "0" }, { title: "七夕2018", src: "/bbs/medal/七夕2018.gif", animation: "qixi-twinkle", verticalAdjust: "0" }, { title: "元旦勋章2019", src: "/bbs/medal/元旦勋章2019.gif", animation: "newyear-pulse", verticalAdjust: "0" }, { title: "屌", src: "/bbs/medal/屌.gif", animation: "badge-bounce", verticalAdjust: "0" }, { title: "春", src: "/bbs/medal/春.gif", animation: "spring-glow", verticalAdjust: "0" }, { title: "劳动节2019", src: "/bbs/medal/劳动节2019.gif", animation: "labor-day", verticalAdjust: "0" }, { title: "中国制造", src: "/bbs/medal/中国制造.gif", animation: "made-in-china", verticalAdjust: "0" }, { title: "百万富翁", src: "/bbs/medal/百万富翁.gif", animation: "money-glow", verticalAdjust: "0" }, { title: "百万派币", src: "/bbs/medal/百万派币.gif", animation: "coin-glow", verticalAdjust: "0" }, { title: "龙猫", src: "/bbs/medal/%E9%BE%99%E7%8C%AB.gif", animation: "totoro-bounce", verticalAdjust: "0" }, { title: "五星红旗", src: "/bbs/medal/五星红旗.gif", animation: "flag-wave", verticalAdjust: "0" }, { title: "2020纪念章", src: "/XinZhang/Images/2020.gif", animation: "year-glow", verticalAdjust: "极速前进" }, { title: "1724260号勋章", src: "/XinZhang/upload/1000/1000_1724260.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "超级夜猫", src: "/bbs/medal/超级夜猫.gif", animation: "owl-blink", verticalAdjust: "0" }, { title: "59号勋章", src: "/bbs/medal/59.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "28号勋章", src: "/bbs/medal/28.gif", animation: "bad极速前进ulse", verticalAdjust: "0" }, { title: "2047350极速前进勋章", src: "/XinZhang/upload/1000/1000_2047350.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "拍照达人", src: "/bbs/medal/拍照达人.gif", animation: "camera-flash", verticalAdjust: "0" }, { title: "1737000号勋章", src: "/XinZhang/upload/1000/1000_1737000.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "0752390号勋章", src: "/XinZhang/upload/1000/1000_0752390.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "0758560号勋章", src: "/XinZhang/upload/1000/1000_0758560.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "0813030号勋章", src: "/XinZhang/upload/1000/1000_0813030.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "0951430号勋章", src: "/XinZhang/upload/1000/1000_0951430.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "1841310号勋章", src: "/XinZhang/upload/1000/1000_1841310.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "0809320号勋章", src: "/XinZhang/upload/1000/1000_0809320.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "2046540号勋章", src: "/XinZhang/upload/1000/1000_2046540.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "1943020号勋章", src: "/XinZhang/upload/1000/1000_1943020.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "1559290号勋章", src: "/XinZhang/upload/1000/1000_1559290.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "1509260号勋章", src: "/XinZhang/upload/1000/1000_1509260.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "1501480号勋章", src: "/XinZhang/upload/1000/1000_1501480.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "2315160号勋章", src: "/XinZhang/upload/1000/1000_2315160.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "1117400号勋章", src: "/XinZhang/upload/1000/1000_1117400.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "1611310号勋章", src: "/XinZhang/upload/1000/1000_1611310.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "1938210极速前进勋章", src: "/XinZhang/upload/1000/1000_1938210.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "2140060号勋章", src: "/XinZhang/upload/1000/1000_2140060.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "1003130号勋章", src: "/XinZhang/upload/1000/1000_1003130.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "1732500号勋章", src: "/XinZhang/upload/1000/1000_1732500.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "1528320号勋章", src: "/XinZhang/upload/1000/1000_1528320.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "热心助人", src: "/XinZhang/Images/热心助人.gif", animation: "helping-hand", verticalAdjust: "0" }, { title: "0732050号勋章", src: "/XinZhang/upload/1000/1000_0732050.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "1757060号勋章", src: "/XinZhang/upload/1000/1000_1757060.png", animation: "badge-pulse", verticalAdjust: "0" }, { title: "2013260号勋章", src: "/XinZhang/upload/1000/1000_2013260.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "0224310号勋章", src: "/XinZhang/upload/1000/1000_0224310.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "1506470号勋章", src: "/XinZhang/upload/1000/1000_1506470.gif", animation极速前进: "badge-pulse", verticalAdjust: "0" }, { title: "2210090号勋章", src: "/XinZhang/upload/1000/1000_2210090.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "1525390号勋章", src: "/XinZhang/upload/1000/1000_1525390.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "0815320号勋章", src: "/XinZhang/upload/1000/1000_0815320.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "2344100号勋章", src: "/XinZhang/upload/1000/1000_2344100.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "1203030号勋章", src: "/XinZhang/upload/1000/1000_1203030.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "1915240号勋章", src: "/XinZhang/upload/1000/1000_1915240.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "1512170号勋章", src: "/XinZhang/upload/1000/1000_1512170.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "1458370号勋章", src: "/XinZhang/upload/1000/1000_1458370.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "1059360号勋章", src: "/XinZhang/upload/1000/1000_1059360.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "2249410号勋章", src: "/XinZhang/upload/1000/1000_2249410.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "1429590号勋章", src: "/XinZhang/upload/1000/1000_1429590.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "1531110号勋章", src: "/XinZhang/upload/1000/1000_1531110.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "0851310号勋章", src: "/XinZhang/upload/1000/1000_0851310.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "1005060号勋章", src: "/XinZhang/upload/1000/1000_1005060.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "0637410号勋章", src: "/XinZhang/upload/1000/1000_0637410.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "1723240号勋章", src: "/XinZhang/upload/1000/1000_1723240.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "0846470号勋章", src: "/XinZhang/upload/1000/1000_0846470.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "1857240号勋章", src: "/XinZhang/upload/1000/1000_1857240.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "1134130号勋章", src: "/XinZhang/upload/1000/1000_1134130.gif", animation: "badge-pulse", verticalAdjust: "0" }, { title: "F1跑车", src: "/XinZhang/upload/1000/1000_0700400.gif", animation: "badge-pulse", verticalAdjust: "0" } ]; // 创建动画样式和垂直对齐修复 const createStyles = () => { const styles = ` @keyframes heartbeat-red { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); filter: drop-shadow(0 0 3px red); } } @keyframes heartbeat-blue { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); filter: drop-shadow(0 0 3px blue); } } @keyframes badge-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } } @keyframes study-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.03); } } @keyframes christmas-twinkle { 0%, 100% { opacity: 1; } 50% { opacity: 0.9; } } @keyframes newyear-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.04); } } @keyframes redpacket-shake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(2px); } 75% { transform: translateX(-2px); } } @keyframes rabbit-hop { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } } @极速前进 halloween-glow { 0%, 100% { filter: brightness(1); } 50% { filter: brightness(1.1); } } @keyframes christmas-gift { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.04); } } @keyframes vip-glow { 0%, 100% { filter: brightness(1); } 50% { filter: brightness(1.1); } } @keyframes rooster-crow { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(2px); } 75% { transform: translateX(-2px); } } @keyframes water-splash { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.03); } } @keyframes santa-shake { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(1px); } 75% { transform: translateX(-1px); } } @keyframes lantern-glow { 0%, 100% { filter: brightness(1); } 50% { filter: brightness(1.08); } } @keyframes windmill-glow { 0%, 100% { filter: brightness(1); } 50% { filter: brightness(1.1); } } @keyframes qixi-twinkle { 0%, 100% { opacity: 1; } 50% { opacity: 0.95; } } @keyframes badge-bounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } } @keyframes spring-glow { 0%, 100% { filter: brightness(1); } 50% { filter: brightness(1.08); } } @keyframes labor-day { 0%, 100极速前进 transform: scale(1); } 50% { transform: scale(1.03); } } @keyframes made-in-china { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(1px); } 75% { transform: translateX(-1px); } } @keyframes money-glow { 0%, 100% { filter: brightness(1); } 50% { filter: brightness(1.15); } } @keyframes coin-glow { 0%, 100% { filter: brightness(1); } 50% { filter: brightness(1.1); } } @keyframes totoro-bounce { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } } @keyframes flag-wave { 0%, 100% { transform: translateX(0); } 25% { transform: translateX(1px); } 75% { transform: translateX(-1px); } } @keyframes year-glow { 0%, 100% { filter: brightness(1); } 50% { filter: brightness(1.08); } } @keyframes owl-blink { 0%, 100% { opacity: 1; } 50% { opacity: 0.95; } } @keyframes camera-flash { 0%, 100% { filter: brightness(1); } 50% { filter: brightness(1.2); } } @keyframes helping-hand { 0%, 100% { transform: scale(极速前进); } 50% { transform: scale(1.03); } } .compact-badge { width: 30px !important; height: 30px !important; margin: 0 1px !important; cursor: pointer; position: relative; transition: all 0.3s ease; object-fit: contain; display: inline-block !important; vertical-align: middle !important; } .compact-badge:hover { transform: scale(1.1); z-index: 100; transition: transform 0.3s ease; } `; const styleTag = document.createElement('style'); styleTag.textContent = styles; document.head.appendChild(styleTag); }; // 检查勋章是否已存在 const badgeExists = (container, badgeSrc) => { // 获取容器中所有勋章 const existingBadges = container.querySelectorAll('img'); // 检查每个勋章的src for (let i = 0; i < existingBadges.length; i++) { const existingSrc = existingBadges[i].src; // 处理相对路径和绝对路径 const normalizedExistingSrc = existingSrc.replace(window.location.origin, ''); const normalizedNewSrc = badgeSrc.startsWith('/') ? badgeSrc : '/' + badgeSrc; if (normalizedExistingSrc === normalizedNewSrc) { return true; } } return false; }; // 向指定容器尾部插入勋章 const appendBadgesToContainer = (container, badges) => { if (!container) return; // 创建文档片段 const fragment = document.createDocumentFragment(); let addedCount = 0; badges.forEach(badge => { // 检查勋章是否已极速前进 if (!badgeExists(container, badge.src)) { const badgeElement = document.createElement('img'); badgeElement.className = 'compact-badge'; badgeElement.src = badge.src; badgeElement.alt = badge.title; badgeElement.title = badge.title; badgeElement.style.animation = `${badge.animation} 3s infinite ease-in-out`; // 应用垂直微调 badgeElement.style.position = 'relative'; if (badge.verticalAdjust !== "0") { badgeElement.style.top = badge.verticalAdjust; } fragment.appendChild(badgeElement); addedCount++; } }); // 如果有新勋章,追加到容器尾部 if (addedCount > 0) { container.appendChild(fragment); console.log(`已添加 ${addedCount} 个新勋章`); } else { console.log('所有勋章已存在,无需添加'); } }; // 初始化操作 const init = () => { createStyles(); // 同时增强两个区域的勋章展示效果 const targets = [ { selector: '.xunzhangtupian', // 主帖勋章区 badges: premiumBadges }, { selector: '#medals span[name="mymedals"]', // "我的勋章"区域 badges: premiumBadges } ]; // 延迟执行确保DOM完全加载 const insertBadges = () => { targets.forEach(target => { const container = document.querySelector(target.selector); if (container) { // 确认原有内容已加载 const hasContent = container.innerHTML.trim() !== ''; if (hasContent) { // 追加到尾部 appendBadgesToContainer(container, target.badges); } else { // 若为空容器,等待内容加载 setTimeout(() => { appendBadgesToContainer(container, target.badges); }, 500); } } }); }; // 添加点击效果 document.addEventListener('click', function(e) { if (e.target.classList.contains('compact-badge')) { const badge = e.target; const originalAnim = badge.style.animation; badge.style.animation = 'none'; setTimeout(() => { badge.style.animation = originalAnim; }, 300); } }); // 初始尝试插入 setTimeout(insertBadges, 300); }; // 页面加载完成后执行 if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', init); } else { init(); } })();