原神角色数据列表:数据更新到5.0版本,更换品质排序背景颜色,列表可以显示攻略

<!DOCTYPE html>
<html lang="zh-CN">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>原神角色数据列表</title>
    <!-- <link rel="stylesheet" href="file:///D:/data/原神/css/GenshinRoleTableContainer.css"> -->
</head>
<style>
    body {
        background: #0b1b2c;
    }

    /* 原神角色列表样式 */
    #GenshinRoleTableContainer {
       display: flex;

       table {
           border-collapse: collapse;
           margin-top: 35px;
           caption {
               background-color: #80a4b1;
               border-radius: 5px 5px 0 0;
           }

           th,
           td {
               text-align: center;
               border: 1px solid #ddd;
           }

           th {
               background-color: #9f9e9e;
           }

           td {
               color: hsl(0, 0%, 100%);
               text-shadow: 1px 1px 1px #030303;
           }
       }


   

       /* 按钮√ */
       .cultivate,
       .checkButton {
           background-color: #f9030300;
           height: 15px;
           width: 25px;
           border-top: none;
           border-right: none;
           border-radius: 0;
           transform: rotate(-45deg);
           transition: all 0.5s ease-in-out;
       }


       .checkButton::before {
           content: '获得';
           display: block;
           transform: rotate(90deg) translate(-14px, 12px);
           color: #67c23a;
           text-shadow: 1px 1px 1px #030303;
       }

       .cultivate::before {
           content: '培养';
           display: block;
           transform: rotate(90deg) translate(-14px, 12px);
           color: #ffcc00;
           text-shadow: 1px 1px 1px #030303;
       }

       /* 数据和品质切换按钮样式 */
       #switchButton,
       #sortButton {
           cursor: pointer;
       }

       /* 鼠标移入显示图片添加过渡效果 */
       .zoom-image {
           transition: transform 0.3s ease-in-out;
       }
    
   }

   /* 原神角色列表样式  结束*/
</style>

<body>
    <!-- staticHeader(静态标头) -->
    <!-- <header id="staticHeader">staticHeader(静态标头)</header> -->
    <div id="GenshinRoleTableContainer">原神角色列表GenshinRoleTableContainer</div>

</body>

<script>
/*134角色培养数据*/
const cultivateGenshinRole134 = [
    "宵宫", "夜兰", "班尼特", "钟离",
    "雷电将军", "枫原万叶", "行秋", "瑶瑶",
    "七七", "纳西妲", // 添加新角色
];
/*152角色培养数据*/
const cultivateGenshinRole152 = [
    "夜兰", "班尼特", "钟离",
    "雷电将军", "枫原万叶", "行秋", "瑶瑶","夏洛蒂","香菱",
     // 添加新角色
];

/*培养数据* 结束*/
/* 原神攻略收藏*/
const introductionLinks = [
    {
      name: '原神wiki角色攻略',
      url: 'https://bbs.mihoyo.com/ys/strategy/channel/map/37/39?bbs_presentation_style=no_header&hide_nav=true&from=COLLECTION_BG'
    },
    {
      name: '提瓦特大地图',
      url: 'https://act.mihoyo.com/ys/app/interactive-map/index.html?bbs_presentation_style=no_header&lang=zh-cn&utm_source=bbs&utm_medium=mys&utm_campaign=pcicon&_markerFps=24#/map/2?shown_types=NaN,-1084,508,2&center=2008.50,-1084.00&zoom=-3.00'
    },
    {
      name: '原神wiki武器攻略',
      url: 'https://bbs.mihoyo.com/ys/strategy/channel/map/37/38?bbs_presentation_style=no_header&hide_nav=true&from=COLLECTION_BG'
    },
    {
      name: '原神wiki活动攻略',
      url: 'https://bbs.mihoyo.com/ys/strategy/channel/map/37/40?bbs_presentation_style=no_header&hide_nav=true&from=COLLECTION_BG'
    },
    {name: '夏洛蒂培养攻略',
      url: 'https://www.miyoushe.com/ys/article/45239036'
    },
    {
        name: '夏洛蒂机养成',
        url: 'https://www.miyoushe.com/ys/article/45238643'
      },
    {
      name: '瑶瑶培养攻略',
      url: 'https://www.miyoushe.com/ys/article/34411972'
    },
  ];
  /* 原神攻略收藏 结束*/
/* 134获得角色数据*/
const haveGenshinRole134 = [
    {
        element: "火", // 元素类型
        role: [
            { name: "迪卢克", level: 90, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "宵宫", level: 90, constellation: 1, talent: "满", note: "备注" },
            { name: "迪希雅", level: 90, constellation: 1, talent: "1/1/1", note: "备注" },
            { name: "托马", level: 20, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "烟绯", level: 80, constellation: 6, talent: "1/1/1", note: "备注" },
            { name: "香菱", level: 90, constellation: 3, talent: "1/7/12", note: "备注" },
            { name: "班尼特", level: 90, constellation: 5, talent: "满", note: "备注" },
            { name: "安柏", level: 40, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "辛焱", level: 1, constellation: 1, talent: "1/1/1", note: "备注" },
            { name: "嘉明", level: 20, constellation: 4, talent: "1/1/1", note: "备注" },
            { name: "夏沃蕾", level: 80, constellation: 0, talent: "1/1/1", note: "备注" },
            // { name: "夏沃蕾", level: 0, constellation: 1, talent: "1/1/1", note: "备注" },
        ]
    },
    {
        element: "水", // 元素类型
        role: [
            { name: "珊瑚宫心海", level: 90, constellation: 0, talent: "7/10/8", note: "备注" },
            { name: "夜兰", level: 90, constellation: 2, talent: "10/10/10", note: "备注" },
            { name: "芙宁娜", level: 90, constellation: 1, talent: "9/10/10", note: "备注" },
            // { name: "那维莱特", level: 1, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "芭芭拉", level: 60, constellation: 3, talent: "1/1/1", note: "备注" },
            { name: "行秋", level: 90, constellation: 6, talent: "6/11/12", note: "备注" },
            { name: "坎蒂丝", level: 19, constellation: 1, talent: "1/1/1", note: "备注" },
        ]
    },
    {
        element: "风", // 元素类型
        role: [
            { name: "琴", level: 60, constellation: 3, talent: "1/1/4", note: "备注" },
            { name: "枫原万叶", level: 90, constellation: 1, talent: "满", note: "备注" },
            { name: "流浪者", level: 90, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "珐露珊", level: 90, constellation: 5, talent: "1/1/1", note: "备注" },
            { name: "砂糖", level: 90, constellation: 5, talent: "1/1/1", note: "备注" },
            { name: "鹿野院平藏", level: 20, constellation: 5, talent: "1/1/1", note: "备注" },
            { name: "琳妮特", level: 20, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "早柚", level: 80, constellation: 6, talent: "1/1/1", note: "备注" },
        ]
    },
    {
        element: "雷", // 元素类型
        role: [
            { name: "刻晴", level: 90, constellation: 1, talent: "1/1/1", note: "备注" },
            { name: "雷电将军", level: 90, constellation: 3, talent: "满", note: "备注" },
            { name: "菲谢尔", level: 90, constellation: 3, talent: "1/1/1", note: "备注" },
            { name: "北斗", level: 20, constellation: 6, talent: "1/1/1", note: "备注" },
            { name: "丽莎", level: 60, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "雷泽", level: 50, constellation: 2, talent: "1/1/1", note: "备注" },
            // { name: "赛索斯", level: 1, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "多莉", level: 20, constellation: 4, talent: "1/1/1", note: "备注" },
            { name: "久岐忍", level: 90, constellation: 4, talent: "1/1/1", note: "备注" },
            { name: "九条裟罗", level: 90, constellation: 6, talent: "1/1/1", note: "备注" },
        ]
    },
    {
        element: "草", // 元素类型
        role: [
            { name: "纳西妲", level: 90, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "提纳里", level: 70, constellation: 2, talent: "1/1/1", note: "备注" },
            { name: "绮良良", level: 40, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "卡维", level: 20, constellation: 1, talent: "1/1/1", note: "备注" },
            { name: "瑶瑶", level: 90, constellation: 6, talent: "6/12/10", note: "备注" },
            { name: "柯莱", level: 20, constellation: 6, talent: "1/1/1", note: "备注" },
            // { name: "旅行者 (草)", level: 1, constellation: 0, talent: "1/1/1", note: "备注" }
        ]
    },
    {
        element: "冰", // 元素类型
        role: [
            { name: "七七", level: 90, constellation: 1, talent: "9/10/9", note: "备注" },
            // { name: "优菈", level: 1, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "菲米尼", level: 20, constellation: 5, talent: "1/1/1", note: "备注" },
            { name: "米卡", level: 20, constellation: 1, talent: "1/1/1", note: "备注" },
            { name: "莱依拉", level: 40, constellation: 4, talent: "1/4/1", note: "备注" },
            { name: "罗莎莉亚", level: 20, constellation: 6, talent: "1/1/1", note: "备注" },
            { name: "迪奥娜", level: 90, constellation: 6, talent: "1/1/1", note: "备注" },
            { name: "重云", level: 20, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "凯亚", level: 60, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "夏洛蒂", level: 50, constellation: 4, talent: "1/1/1", note: "备注" },
        ]
    },
    {
        element: "岩", // 元素类型
        role: [
            { name: "钟离", level: 90, constellation: 0, talent: "9/10/10", note: "备注" },
            { name: "云堇", level: 40, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "五郎", level: 20, constellation: 3, talent: "1/1/1", note: "备注" },
            { name: "凝光", level: 70, constellation: 6, talent: "1/1/1", note: "备注" },
            { name: "诺艾尔", level: 80, constellation: 6, talent: "1/1/1", note: "备注" },
            { name: "旅行者 (岩)", level: 80, constellation: 6, talent: "1/1/1", note: "备注" }
        ]
    }
];
/* 134获得角色数据 结束*/
/* 152获得角色数据*/
const haveGenshinRole152 = [
    {
        element: "火", // 元素类型
        role: [
            // { name: "迪卢克", level: 1, constellation: 0, talent: "1/1/1", note: "备注" },
            // { name: "宵宫", level: 1, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "迪希雅", level: 20, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "托马", level: 20, constellation: 2, talent: "1/1/1", note: "备注" },
            { name: "烟绯", level: 7, constellation: 5, talent: "1/1/1", note: "备注" },
            { name: "香菱", level: 90, constellation: 6, talent: "2/7/11", note: "备注" },
            { name: "班尼特", level: 90, constellation: 5, talent: "1/1/1", note: "备注" },
            { name: "安柏", level: 31, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "辛焱", level: 1, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "嘉明", level: 1, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "夏沃蕾", level: 40, constellation: 4, talent: "1/1/1", note: "备注" },

        ]
    },
    {
        element: "水", // 元素类型
        role: [
            { name: "莫娜", level: 90, constellation: 1, talent: "1/1/1", note: "备注" },
            // { name: "珊瑚宫心海", level: 1, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "夜兰", level: 90, constellation: 1, talent: "1/1/1", note: "备注" },
            { name: "芙宁娜", level: 1, constellation: 0, talent: "1/1/1", note: "备注" },
            // { name: "那维莱特", level: 1, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "芭芭拉", level: 90, constellation: 3, talent: "1/1/1", note: "备注" },
            { name: "行秋", level: 20, constellation: 4, talent: "1/1/1", note: "备注" },
            // { name: "坎蒂丝", level: 1, constellation: 0, talent: "1/1/1", note: "备注" },

        ]
    },
    {
        element: "风", // 元素类型
        role: [
            { name: "琴", level: 70, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "枫原万叶", level: 90, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "流浪者", level: 90, constellation: 1, talent: "1/1/1", note: "备注" },
            { name: "珐露珊", level: 90, constellation: 2, talent: "1/1/1", note: "备注" },
            // { name: "砂糖", level: 1, constellation: 0, talent: "1/1/1", note: "备注" },
            // { name: "鹿野院平藏", level: 1, constellation: 0, talent: "1/1/1", note: "备注" },90
            { name: "琳妮特", level: 90, constellation: 6, talent: "1/1/1", note: "备注" },
            { name: "早柚", level: 40, constellation: 3, talent: "1/1/1", note: "备注" },

        ]
    },
    {
        element: "雷", // 元素类型

        role: [
            { name: "刻晴", level: 90, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "雷电将军", level: 90, constellation: 0, talent: "1/1/1", note: "备注" },
            // { name: "菲谢尔", level: 1, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "北斗", level: 90, constellation: 6, talent: "1/1/1", note: "备注" },
            { name: "丽莎", level: 36, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "雷泽", level: 20, constellation: 2, talent: "1/1/1", note: "备注" },
            // { name: "赛索斯", level: 1, constellation: 0, talent: "1/1/1", note: "备注" },
            // { name: "多莉", level: 1, constellation: 0, talent: "1/1/1", note: "备注" },
            // { name: "久岐忍", level: 1, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "九条裟罗", level: 40, constellation: 6, talent: "1/1/1", note: "备注" },

        ]
    },
    {
        element: "草", // 元素类型

        role: [
            // { name: "纳西妲", level: 1, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "提纳里", level: 39, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "绮良良", level: 40, constellation: 2, talent: "1/1/1", note: "备注" },
            { name: "卡维", level: 20, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "瑶瑶", level: 90, constellation: 1, talent: "1/1/1", note: "备注" },
            { name: "柯莱", level: 70, constellation: 2, talent: "1/1/1", note: "备注" },
            { name: "旅行者 (草)", level: 90, constellation: 6, talent: "1/1/1", note: "备注" }
        ]
    },
    {
        element: "冰", // 元素类型

        role: [
            // { name: "七七", level: 1, constellation: 0, talent: "1/1/1", note: "备注" },
            // { name: "优菈", level: 1, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "菲米尼", level: 40, constellation: 5, talent: "1/1/1", note: "备注" },
            { name: "米卡", level: 60, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "莱依拉", level: 70, constellation: 2, talent: "1/1/1", note: "备注" },
            { name: "罗莎莉亚", level: 49, constellation: 1, talent: "1/1/1", note: "备注" },
            // { name: "迪奥娜", level: 1, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "重云", level: 1, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "凯亚", level: 60, constellation: 1, talent: "1/1/1", note: "备注" },
            { name: "夏洛蒂", level: 60, constellation: 6, talent: "1/1/1", note: "夏洛蒂主要定位是攻击治疗续航辅助,其被动在与其他枫丹角色组成配队时会获得额外治疗加成收益。但和非枫丹角色搭配会获得冰伤加成,可以考虑在一定程度上开发输出但主流仍为奶妈。" },

        ]
    },
    {
        element: "岩", // 元素类型
        role: [
            { name: "钟离", level: 90, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "云堇", level: 20, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "五郎", level: 1, constellation: 1, talent: "1/1/1", note: "备注" },
            { name: "凝光", level: 40, constellation: 0, talent: "1/1/1", note: "备注" },
            { name: "诺艾尔", level: 34, constellation: 4, talent: "1/1/1", note: "备注" },
            { name: "卡齐娜", level: 1, constellation: 0, talent: "1/1/1", note: "备注" },


        ]
    }
];
/* 152获得角色数据 结束*/
/* 原神4.8版本角色数据*/
const GenshinRole = [
    {
        element: "火", // 元素类型
        elementImage: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/elements/Pyro.png?strip=all&quality=75&w=48", // 元素图标
        role: [
            { star: "5", name: "阿蕾奇诺", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/arlecchino/image.png?strip=all&quality=100&w=140", },
            { star: "5", name: "林尼", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/lyney/image.png?strip=all&quality=100&w=140" },
            { star: "5", name: "迪希雅", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/dehya/image.png?strip=all&quality=100&w=140" },
            { star: "5", name: "迪卢克", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/diluc/image.png?strip=all&quality=100&w=140" },
            { star: "5", name: "胡桃", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/hu_tao/image.png?strip=all&quality=100&w=140", },
            { star: "5", name: "可莉", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/klee/image.png?strip=all&quality=100&w=140" },
            { star: "5", name: "宵宫", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/yoimiya/image.png?strip=all&amp;quality=100&amp;w=140" },
            { star: "4", name: "托马", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/thoma/image.png?strip=all&quality=100&w=140", },
            { star: "4", name: "烟绯", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/yanfei/image.png?strip=all&quality=100&w=140", },
            { star: "4", name: "香菱", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/xiangling/image.png?strip=all&quality=100&w=140" },
            { star: "4", name: "班尼特", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/bennett/image.png?strip=all&quality=100&w=140" },
            { star: "4", name: "安柏", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/amber/image.png?strip=all&quality=100&w=140" },
            { star: "4", name: "辛焱", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/xinyan/image.png?strip=all&quality=100&w=140", },
            { star: "4", name: "嘉明", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/gaming/image.png?strip=all&quality=100&w=140" },
            { star: "4", name: "夏沃蕾", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/chevreuse/image.png?strip=all&quality=100&w=140" },
            { star: "5", name: "旅行者 (火)", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/traveler_electro/image.png?strip=all&quality=100&w=140" },
        ]
    },
    {
        element: "水", // 元素类型
        elementImage: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/elements/Hydro.png?strip=all&quality=75&w=48", // 元素图标
        role: [
            { star: "5", name: "妮露", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/nilou/image.png?strip=all&amp;quality=100&amp;w=140" },
            { star: "5", name: "莫娜", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/mona/image.png?strip=all&quality=100&w=140" },
            { star: "5", name: "达达利亚", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/tartaglia/image.png?strip=all&quality=100&w=140" },
            { star: "5", name: "珊瑚宫心海", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/sangonomiya_kokomi/image.png?strip=all&quality=100&w=140", },
            { star: "5", name: "希格雯", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/sigewinne/image.png?strip=all&quality=100&w=140" },
            { star: "5", name: "夜兰", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/yelan/image.png?strip=all&quality=100&w=140" },
            { star: "5", name: "神里绫人", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/kamisato_ayato/image.png?strip=all&quality=100&w=140" },
            { star: "5", name: "芙宁娜", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/furina/image.png?strip=all&quality=100&w=140" },
            { star: "5", name: "那维莱特", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/neuvillette/image.png?strip=all&quality=100&w=140" },
            { star: "5", name: "玛拉妮", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/mualani/image.png?strip=all&amp;quality=100&amp;w=140" },

        
            { star: "4", name: "芭芭拉", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/barbara/image.png?strip=all&quality=100&w=140" },
            { star: "4", name: "行秋", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/xingqiu/image.png?strip=all&quality=100&w=140" },
            { star: "4", name: "坎蒂丝", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/candace/image.png?strip=all&amp;quality=100&amp;w=140" },
            { star: "5", name: "旅行者 (水)", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/traveler_anemo/image.png?strip=all&quality=100&w=140" },
        ]
    },
    {
        element: "风", // 元素类型
        elementImage: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/elements/Anemo.png?strip=all&quality=75&w=48", // 元素图标
        role: [
            { star: "5", name: "温迪", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/venti/image.png?strip=all&quality=100&w=140" },
            { star: "5", name: "琴", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/jean/image.png?strip=all&quality=100&w=140" },
            { star: "5", name: "魈", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/xiao/image.png?strip=all&quality=100&w=140" },
            { star: "5", name: "闲云", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/xianyun/image.png?strip=all&quality=100&w=140" },
            { star: "5", name: "枫原万叶", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/kaedehara_kazuha/image.png?strip=all&quality=100&w=140" },
            { star: "5", name: "流浪者", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/wanderer/image.png?strip=all&quality=100&w=140" },
            { star: "4", name: "珐露珊", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/faruzan/image.png?strip=all&quality=100&w=140" },
            { star: "4", name: "砂糖", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/sucrose/image.png?strip=all&quality=100&w=140" },
            { star: "4", name: "鹿野院平藏", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/shikanoin_heizou/image.png?strip=all&quality=100&w=140" },
            { star: "4", name: "琳妮特", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/lynette/image.png?strip=all&quality=100&w=140" },
            { star: "4", name: "早柚", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/sayu/image.png?strip=all&amp;quality=100&amp;w=140" },
            { star: "5", name: "旅行者 (风)", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/traveler_anemo/image.png?strip=all&quality=100&w=140" },
        ]
    },
    {
        element: "雷", // 元素类型
        elementImage: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/elements/Electro.png?strip=all&quality=75&w=48", // 元素图标
        role: [
            { star: "5", name: "刻晴", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/keqing/image.png?strip=all&quality=100&w=140" },
            { star: "5", name: "雷电将军", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/raiden_shogun/image.png?strip=all&quality=100&w=140" },
            { star: "5", name: "八重神子", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/yae_miko/image.png?strip=all&quality=100&w=140", },
            { star: "5", name: "克洛琳德", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/clorinde/image.png?strip=all&quality=100&w=140", },
            { star: "5", name: "赛诺", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/cyno/image.png?strip=all&quality=100&w=140", },
            { star: "4", name: "菲谢尔", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/fischl/image.png?strip=all&quality=100&w=140" },
            { star: "4", name: "北斗", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/beidou/image.png?strip=all&quality=100&w=140" },
            { star: "4", name: "丽莎", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/lisa/image.png?strip=all&quality=100&w=140" },
            { star: "4", name: "雷泽", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/razor/image.png?strip=all&quality=100&w=140", },
            { star: "4", name: "赛索斯", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/sethos/image.png?strip=all&quality=100&w=140", },
            { star: "4", name: "多莉", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/dori/image.png?strip=all&quality=100&w=140", },
            { star: "4", name: "久岐忍", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/kuki_shinobu/image.png?strip=all&quality=100&w=140", },
            { star: "4", name: "九条裟罗", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/kujou_sara/image.png?strip=all&quality=100&w=140", },
            { star: "5", name: "旅行者 (雷)", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/traveler_dendro/image.png?strip=all&quality=100&w=140" }
        ]
    },
    {
        element: "草", // 元素类型
        elementImage: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/elements/Dendro.png?strip=all&quality=75&w=48", // 元素图标
        role: [
            { star: "5", name: "艾梅莉埃", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/emilie/image.png?strip=all&quality=100&w=140", },
            { star: "5", name: "艾尔海森", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/alhaitham/image.png?strip=all&quality=100&w=140", },
            { star: "5", name: "白术", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/baizhu/image.png?strip=all&quality=100&w=140", },
            { star: "5", name: "纳西妲", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/nahida/image.png?strip=all&quality=100&w=140", },
            { star: "5", name: "提纳里", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/tighnari/image.png?strip=all&quality=100&w=140", },
            { star: "5", name: "基尼奇", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/kinich/image.png?strip=all&amp;quality=100&amp;w=140", },
            { star: "4", name: "绮良良", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/kirara/image.png?strip=all&quality=100&w=140", },
            { star: "4", name: "卡维", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/kaveh/image.png?strip=all&quality=100&w=140", },
            { star: "4", name: "瑶瑶", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/yaoyao/image.png?strip=all&quality=100&w=140", },
            { star: "4", name: "柯莱", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/collei/image.png?strip=all&quality=100&w=140", },
            { star: "5", name: "旅行者 (草)", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/traveler_dendro/image.png?strip=all&quality=100&w=140" }
        ]
    },
    {
        element: "冰", // 元素类型
        elementImage: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/elements/Cryo.png?strip=all&quality=75&w=48", // 元素图标
        role: [
            { star: "5", name: "莱欧斯利", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/wriothesley/image.png?strip=all&quality=100&w=140", },
            { star: "5", name: "七七", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/qiqi/image.png?strip=all&quality=100&w=140", },
            { star: "5", name: "甘雨", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/ganyu/image.png?strip=all&quality=100&w=140", },
            { star: "5", name: "申鹤", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/shenhe/image.png?strip=all&quality=100&w=140", },
            { star: "5", name: "神里绫华", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/kamisato_ayaka/image.png?strip=all&quality=100&w=140", },
            { star: "5", name: "埃洛伊", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/aloy/image.png?strip=all&quality=100&w=140", },
            { star: "5", name: "优菈", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/eula/image.png?strip=all&quality=100&w=140", },
            { star: "4", name: "菲米尼", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/freminet/image.png?strip=all&quality=100&w=140", },
            { star: "4", name: "米卡", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/mika/image.png?strip=all&quality=100&w=140", },
            { star: "4", name: "莱依拉", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/layla/image.png?strip=all&quality=100&w=140", },
            { star: "4", name: "罗莎莉亚", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/rosaria/image.png?strip=all&quality=100&w=140", },
            { star: "4", name: "迪奥娜", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/diona/image.png?strip=all&quality=100&w=140", },
            { star: "4", name: "重云", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/chongyun/image.png?strip=all&quality=100&w=140", },
            { star: "4", name: "凯亚", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/kaeya/image.png?strip=all&quality=100&w=140", },
            { star: "4", name: "夏洛蒂", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/charlotte/image.png?strip=all&quality=100&w=140", },
            { star: "5", name: "旅行者 (冰)", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/traveler_geo/image.png?strip=all&quality=100&w=140" }
        ]
    },
    {
        element: "岩", // 元素类型
        elementImage: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/elements/Geo.png?strip=all&quality=75&w=48", // 元素图标
        role: [
            { star: "5", name: "千织", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/chiori/image.png?strip=all&quality=100&w=140", },
            { star: "5", name: "娜维娅", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/navia/image.png?strip=all&quality=100&w=140", },
            { star: "5", name: "荒泷一斗", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/arataki_itto/image.png?strip=all&quality=100&w=140", },
            { star: "5", name: "阿贝多", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/albedo/image.png?strip=all&quality=100&w=140", },
            { star: "5", name: "钟离", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/zhongli/image.png?strip=all&quality=100&w=140", },
            { star: "4", name: "云堇", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/yun_jin/image.png?strip=all&quality=100&w=140", },
            { star: "4", name: "五郎", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/gorou/image.png?strip=all&quality=100&w=140", },
            { star: "4", name: "凝光", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/ningguang/image.png?strip=all&quality=100&w=140", },
            { star: "4", name: "诺艾尔", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/noelle/image.png?strip=all&quality=100&w=140", },
            { star: "4", name: "卡齐娜", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/kachina/image.png?strip=all&amp;quality=100&amp;w=140", },
            { star: "5", name: "旅行者 (岩)", image: "https://i2.wp.com/genshinbuilds.aipurrjects.com/genshin/characters/traveler_geo/image.png?strip=all&quality=100&w=140", },
        ]
    }
];
/* 原神4.8版本角色数据 结束*/
   /* 原神元素颜色*/
   const elementColors = {
    "火": "#FF9933",
    "水": "#3399FF",
    "风": "#66c6ac",
    "雷": "#CC66FF",
    "草": "#66CC66",
    "冰": "#99CCFF",
    "岩": "#FFCC33"
};

    document.getElementById('GenshinRoleTableContainer').innerHTML = `
 
      <!-- 原神版本全部角色列表 -->
      <table id="GenshinRoleTable"></table>
  </div>
  <div>
      <!-- 已有角色列表 -->
      <table id="haveGenshinRole"></table>
  </div>
  <div>
      <!-- 培养角色列表 -->
      <table id="cultivateGenshinRole"></table>
  </div>
  <div>
   </div>
  `;

    function getElementColor(element) {
        return elementColors[element];
    }

    function getElementImage(element) {
        const foundElement = GenshinRole.find(e => e.element === element);
        return foundElement ? foundElement.elementImage : "";
    }

    function getCharacterImage(role) {
        for (const element of GenshinRole) {
            const foundRole = element.role.find(r => r.name === role);
            if (foundRole) {
                return foundRole.image;
            }
        }
        return "";
    }
 let currentHaveGenshinRoleData = haveGenshinRole134;

function isCharacterOwned(characterName, data) {
    for (const element of data) {
        if (element.role.some(role => role.name === characterName)) {
            return true;
        }
    }
    return false;
}

function renderGenshinRoleTable() {
    const table = document.getElementById("GenshinRoleTable");
    table.innerHTML = `
        <caption>
            <b>原神5.0版本角色数据</b> 
            <a href="https://genshin-builds.com/cn/characters" target="_blank">数据来源:(genshin-builds.com)</a>
        </caption>
        <tr>
            <th>序号</th>
            <th colspan="2">元素</th>
            <th colspan="2">角色</th>
            <th>获得</th>
        </tr>
    `;

    let row = 1;
    let lastElement = null;

    GenshinRole.forEach(elementData => {
        let elementIndex = 1;
        elementData.role.forEach(character => {
            const newRow = table.insertRow();
            newRow.insertCell().textContent = row++;

            if (elementData.element !== lastElement) {
                const elementCell = newRow.insertCell();
                elementCell.rowSpan = elementData.role.length;
                const elementImage = document.createElement('img');
                elementImage.src = getElementImage(elementData.element);
                elementImage.style.width = '24px';
                elementImage.onerror = () => elementCell.textContent = elementData.element;
                elementImage.title = elementData.element;
                elementCell.appendChild(elementImage);
                lastElement = elementData.element;
            }

            newRow.insertCell().textContent = elementIndex++;
            const characterImageCell = newRow.insertCell();
            const characterImage = document.createElement('img');
            characterImage.src = getCharacterImage(character.name);
            characterImage.style.width = '48px';
            characterImage.style.transition = 'transform 0.25s'; // 添加过渡效果
            characterImage.addEventListener('mouseenter', function () {
                this.style.transform = 'scale(3)'; // 放大图片
            });
            characterImage.addEventListener('mouseleave', function () {
                this.style.transform = 'scale(1)'; // 恢复原状
            });
            characterImageCell.appendChild(characterImage);

            const roleCell = newRow.insertCell();
            roleCell.textContent = character.name;
            roleCell.style.color = character.star === "5" ? "#ac7647" : "#846baa";

            const addButtonCell = newRow.insertCell();
            const isOwned = isCharacterOwned(character.name, currentHaveGenshinRoleData);
            if (isOwned) {
                const addButton2 = document.createElement('button');
                addButton2.textContent = '';
                addButton2.className = 'checkButton';
                addButtonCell.appendChild(addButton2);
            } else {
                const addButton1 = document.createElement('button');
                addButton1.textContent = '没有';
                addButtonCell.appendChild(addButton1);
            }

            newRow.style.backgroundColor = getElementColor(elementData.element);
        });
    });
}

renderGenshinRoleTable();

let isSorted = false;

let currentCultivateGenshinRoleData = cultivateGenshinRole134;

function initializeTable(table, captionText, isAddButton = false) {
    table.innerHTML = `
              <caption>
                  <b>${captionText}</b>   
              </caption>
              <tr>
                  <th>序号</th>
                  <th colspan="2">角色</th>
                  <th class="hidden-star">星级</th>
                  <th>等级</th>
                  <th>命座</th>
                  <th style="width:70px;">天赋</th>
                  <th style="width:425px;">备注</th>
              </tr>
              `;
    if (isAddButton) {
        const sortButton = document.createElement('button');
        sortButton.id = 'sortButton';
        sortButton.innerHTML = '品质排序';
        table.querySelector('caption b').insertAdjacentElement('afterend', sortButton);
        sortButton.addEventListener('click', () => {
            isSorted = !isSorted;
            sortTable(table, isSorted);
        });
        // 添加切换数据按钮
        const switchButton = document.createElement('button');
        switchButton.id = 'switchButton';
        switchButton.innerHTML = '切换数据';
        table.querySelector('caption b').insertAdjacentElement('afterend', switchButton);
        switchButton.addEventListener('click', () => {
            currentHaveGenshinRoleData = currentHaveGenshinRoleData === haveGenshinRole134 ? haveGenshinRole152 : haveGenshinRole134;
            currentCultivateGenshinRoleData = currentCultivateGenshinRoleData === cultivateGenshinRole134 ? cultivateGenshinRole152 : cultivateGenshinRole134;
            renderTable();
            renderGenshinRoleTable(); // 重新渲染GenshinRoleTable
        });
    }
    // 隐藏“备注”列
    if (captionText === "134获得角色数据" || captionText === "152获得角色数据") {
        table.querySelectorAll('th').forEach((th, index) => {
            if (index === 6) th.style.display = 'none';
        });
    }
    // 创建弹窗元素
    const popup = document.createElement('div');
    popup.style.display = 'none';
    popup.style.position = 'fixed';
    popup.style.top = '50%';
    popup.style.left = '50%';
    popup.style.transform = 'translate(-50%, -50%)';
    popup.style.backgroundColor = 'white';
    popup.style.border = '1px solid black';
    popup.style.padding = '20px';
    popup.style.zIndex = '1000';
    // 创建关闭按钮
    const closeButton = document.createElement('button');
    closeButton.innerHTML = '关闭';
    closeButton.onclick = () => popup.style.display = 'none';
    popup.appendChild(closeButton);
    // 动态生成链接列表
    introductionLinks.forEach(link => {
        const a = document.createElement('a');
        a.href = link.url;
        a.target = '_blank';
        a.innerHTML = link.name;
        a.style.display = 'block';
        a.style.margin = '10px 0';
        popup.appendChild(a);
    });
    // 在“重点培养的角色”后面添加按钮
    if (captionText === "134重点培养的角色" || captionText === "152重点培养的角色") {
        const IntroductionGenshinButton = document.createElement('button');
        IntroductionGenshinButton.type = 'button';
        IntroductionGenshinButton.id = 'IntroductionGenshin';
        IntroductionGenshinButton.innerHTML = '原神攻略';
        IntroductionGenshinButton.onclick = () => popup.style.display = 'block';
        table.querySelector('caption b').insertAdjacentElement('afterend', IntroductionGenshinButton);
    }
    // 将弹窗添加到文档中
    document.body.appendChild(popup);
    table.querySelectorAll('.hidden-star').forEach(th => th.style.display = 'none');
}

/**
 * 渲染表格
 */
function renderTable() {
    const haveGenshinRoleTable = document.getElementById("haveGenshinRole");
    initializeTable(haveGenshinRoleTable, currentHaveGenshinRoleData === haveGenshinRole134 ? "134获得角色数据" : "152获得角色数据", true);
    let row = 1;
    currentHaveGenshinRoleData.forEach((elementData) => { // 使用 currentHaveGenshinRoleData 数组
        elementData.role.forEach((character) => {
            addCharacterRow(haveGenshinRoleTable, character, elementData.element, row++);
        });
    });
    // 隐藏“备注”列的 td 元素
    if (haveGenshinRoleTable.querySelector('caption b').innerText === "134获得角色数据" || haveGenshinRoleTable.querySelector('caption b').innerText === "152获得角色数据") {
        haveGenshinRoleTable.querySelectorAll('td:nth-child(8)').forEach(td => td.style.display = 'none');
    }
    const cultivateGenshinRoleTable = document.getElementById("cultivateGenshinRole");
    initializeTable(cultivateGenshinRoleTable, currentCultivateGenshinRoleData === cultivateGenshinRole134 ? "134重点培养的角色" : "152重点培养的角色", false);
    row = 1;
    currentCultivateGenshinRoleData.forEach((characterName) => {
        const elementData = currentHaveGenshinRoleData.find(e => e.role.some(r => r.name === characterName));
        if (elementData) {
            const fullCharacterData = elementData.role.find(r => r.name === characterName);
            addCharacterRow(cultivateGenshinRoleTable, fullCharacterData, elementData.element, row++);
        }
    });
}

function getStar(roleName, element) {
    const elementData = GenshinRole.find(e => e.element === element); // 使用 GenshinRole 数组
    if (elementData) {
        const role = elementData.role.find(r => r.name === roleName);
        return role ? role.star : "";
    }
    return "";
}

function sortTable(table, isSorted) {
    // 将表格的行转换为数组并去掉表头行
    const rows = Array.from(table.rows).slice(1);
    if (isSorted) {
        // 如果表格已经排序,按照特定规则重新排序
        rows.sort((a, b) => {
            const starA = a.cells[3].textContent; // 获取第一行的星级
            const starB = b.cells[3].textContent; // 获取第二行的星级
            const constellationA = parseInt(a.cells[5].textContent, 10); // 获取第一行的星座值并转换为整数
            const constellationB = parseInt(b.cells[5].textContent, 10); // 获取第二行的星座值并转换为整数
            if (starA === "5" && starB !== "5") {
                return -1; // 如果第一行的星级是5且第二行的星级不是5,第一行排在前面
            } else if (starA !== "5" && starB === "5") {
                return 1; // 如果第一行的星级不是5且第二行的星级是5,第二行排在前面
            } else {
                return constellationB - constellationA; // 否则按照星座值从大到小排序
            }
        });
    } else {
        // 如果表格未排序,按照索引值从小到大排序
        rows.sort((a, b) => {
            const indexA = parseInt(a.cells[0].textContent, 10); // 获取第一行的索引值并转换为整数
            const indexB = parseInt(b.cells[0].textContent, 10); // 获取第二行的索引值并转换为整数
            return indexA - indexB; // 按照索引值从小到大排序
        });
    }
    // 删除表格中除表头外的所有行
    while (table.rows.length > 1) {
        table.deleteRow(1);
    }
    // 将排序后的行重新添加到表格中,并根据条件设置背景颜色
    rows.forEach(row => {
        table.appendChild(row); // 将行添加到表格中
        const star = row.cells[3].textContent; // 获取行的星级
        const constellation = parseInt(row.cells[5].textContent, 10); // 获取行的星座值并转换为整数
        if (isSorted) {
            if (star === "5" || constellation === 6) {
              // 如果星级是5或者星座值是6,设置特定单元格的背景颜色
              row.cells[1].style.backgroundColor = star === "5" ? "#ac7647" : "#846baa";
                row.cells[2].style.backgroundColor = star === "5" ? "#ac7647" : "#846baa";
                row.cells[3].style.backgroundColor = star === "5" ? "#ac7647" : "#846baa";
                row.cells[4].style.backgroundColor = star === "5" ? "#ac7647" : "#846baa";
                row.cells[5].style.backgroundColor = star === "5" ? "#ac7647" : "#846baa";
                row.cells[6].style.backgroundColor = star === "5" ? "#ac7647" : "#846baa";
            } else {
                // 否则,调用 getElementColor 函数设置背景颜色
                const element = row.cells[1].textContent; // 假设元素信息存储在角色名称单元格中
                row.cells[1].style.backgroundColor = getElementColor(element);
                row.cells[2].style.backgroundColor = getElementColor(element);
                row.cells[3].style.backgroundColor = getElementColor(element);
                row.cells[4].style.backgroundColor = getElementColor(element);
                row.cells[5].style.backgroundColor = getElementColor(element);
                row.cells[6].style.backgroundColor = getElementColor(element);
            }
        } else {
            // 恢复到 elementColors 对象中对应 element 键的值
            const element = row.cells[1].textContent; // 假设元素信息存储在角色名称单元格中
            row.cells[1].style.backgroundColor = elementColors[element] || ''; // 使用 elementColors 对象中的颜色
            row.cells[2].style.backgroundColor = elementColors[element] || '';
            row.cells[3].style.backgroundColor = elementColors[element] || '';
            row.cells[4].style.backgroundColor = elementColors[element] || '';
            row.cells[5].style.backgroundColor = elementColors[element] || '';
            row.cells[6].style.backgroundColor = elementColors[element] || '';
        }
    });
}

let isPopupVisible = false;  // 全局标志变量,用于跟踪当前是否有弹窗显示

function addCharacterRow(table, character, element, rowNumber) {
    const newRow = table.insertRow();
    newRow.insertCell().textContent = rowNumber;
    // 插入角色图片的单元格
    const characterImageCell = newRow.insertCell();
    const characterImage = document.createElement('img');
    characterImage.src = getCharacterImage(character.name);
    characterImage.style.width = '48px';
    characterImageCell.appendChild(characterImage);
    // 插入角色名称的单元格
    const roleCell = newRow.insertCell();
    roleCell.textContent = character.name;
    const isCultivateRole = currentCultivateGenshinRoleData.includes(character.name);  // 使用 currentCultivateGenshinRoleData 数组
    if (isCultivateRole && table.id === "haveGenshinRole") {
        const cultivateButton = document.createElement('button');
        cultivateButton.className = 'cultivate';
        roleCell.appendChild(cultivateButton);
    }
    const star = getStar(character.name, element);
    roleCell.style.color = star === "5" ? "#ac7647" : "#846baa";
    const starCell = newRow.insertCell();
    starCell.textContent = star;
    starCell.style.display = 'none';
    newRow.insertCell().innerHTML = `<span >${character.level}</span>`;
    newRow.insertCell().innerHTML = `<span >${character.constellation}</span>`;
    newRow.insertCell().innerHTML = `<span >${character.talent}</span>`;
    const noteCell = newRow.insertCell();
    noteCell.innerHTML = `<span >${character.note}</span>`;
    // 检查 introductionLinks 数组中是否包含该角色名称
    const hasIntroductionLinks = introductionLinks.some(link => link.name.includes(character.name));
    if (hasIntroductionLinks) {
        // 添加“攻略”按钮
        const strategyButton = document.createElement('button');
        strategyButton.textContent = '攻略';

            strategyButton.addEventListener('click', (event) => showIntroductionLinks(character.name, event));  // 修改为点击事件
            noteCell.appendChild(strategyButton);
        }
        newRow.style.backgroundColor = getElementColor(element);
    }

    function showIntroductionLinks(roleName, event) {
        if (isPopupVisible) return;  // 如果已经有弹窗显示,则直接返回,不再创建新的弹窗
        const filteredLinks = introductionLinks.filter(link => link.name.includes(roleName));
        if (filteredLinks.length > 0) {
            const popup = createIntroductionPopup(filteredLinks, event);
            document.body.appendChild(popup);
            isPopupVisible = true;  // 设置标志变量为 true,表示有弹窗显示
            // 设置定时器,5秒后自动关闭弹窗
            setTimeout(() => {
                popup.remove();
                isPopupVisible = false;  // 弹窗关闭后,重置标志变量
            }, 5000);
        }
    }

    function createIntroductionPopup(links, event) {
        const popup = document.createElement('div');
        popup.style.display = 'block';
        popup.style.position = 'fixed';
        popup.style.top = `${event.clientY + 10}px`;
        popup.style.left = `${event.clientX + 10}px`;
        popup.style.backgroundColor = 'white';
        popup.style.border = '1px solid black';
        popup.style.padding = '20px';
        popup.style.zIndex = '1000';
        // 创建关闭按钮
        const closeButton = document.createElement('button');
        let seconds = 4;
        closeButton.textContent = `5秒关闭`;  // 立即设置文本
        const countdownInterval = setInterval(() => {
            if (seconds > 0) {
                closeButton.textContent = `${seconds}秒关闭`;
                seconds--;
            } else {
                clearInterval(countdownInterval);  // 清除定时器
                popup.remove();
                isPopupVisible = false;  // 点击关闭按钮时,重置标志变量
            }
        }, 1000);
        closeButton.onclick = () => {
            clearInterval(countdownInterval);  // 清除定时器
            popup.remove();
            isPopupVisible = false;  // 点击关闭按钮时,重置标志变量
        };
        popup.appendChild(closeButton);
        document.body.appendChild(popup);
        // 动态生成链接列表
        links.forEach(link => {
            const a = document.createElement('a');
            a.href = link.url;
            a.target = '_blank';
            a.innerHTML = link.name;
            a.style.display = 'block';
            a.style.margin = '10px 0';
            popup.appendChild(a);
        });
        return popup;
    }

    renderTable();
    /* 获得角色数据列表 结束*/

</script>


</html>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值