エモカラ応援王決定戦_バナー.png

👑エモカラ応援王とは👑

🔥推しを応援する歌枠好き視聴者さんのランキング🔥 上位入賞で、歌枠好きのあなたが『エモカラ』配信リストのバナー欄であなたの推しの配信者さんをご紹介 推しの歌枠を広めよう🎉

また『お好きな絵文字が選べるエモカラ応援王リボン』🎀が貰えるチャンス✨🎁

ここでのランキングは、期間中に『エモカラ』ランキングに消費した有償コイン消費量で集計されます📊💭

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ランキング</title>
    <style>
        body {
            font-family: Hiragino Sans;
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }
        .loading {
            display: flex;
            justify-content: center;
            align-items: center;
            height: 100vh;
            font-size: 20px;
            font-weight: bold;
            color: #29CCB1;
            border: 2px solid #E1E1E1;
            padding: 20px;
            box-sizing: border-box;
        }
        .content {
            align-self: stretch;
            padding: 24px 16px;
            background: white;
            display: none; /* 初期状態は非表示 */
            flex-direction: column;
            align-items: center;
            gap: 16px;
            max-width: 900px;
            margin: 0 auto;
        }
        .ranking {
            width: 100%;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 12px;
        }
        .overall-title {
            padding-bottom: 8px;
            border-bottom: 2px solid #29CCB1;
            display: flex;
            justify-content: center;
            align-items: center;
            gap: 10px;
            width: 100%;
        }
        .overall-title div {
            color: #29CCB1;
            font-size: 18px;
            font-weight: 800;
        }
        .user-list {
            width: 100%;
            max-height: 500px;
            background: #F5F5F5;
            border-radius: 8px;
            overflow-y: auto;
            border: 2px solid #E1E1E1;
            display: flex;
            flex-direction: column;
            gap: 1px;
        }
        .user-list div {
            padding: 8px 12px;
            background: white;
            display: flex;
            align-items: center;
            gap: 8px;
        }
        .user-icon {
            width: 40px;
            height: 40px;
            position: relative;
        }
        .user-icon img {
            border-radius: 50%;
            width: 100%;
            height: 100%;
            object-fit: cover;
        }
        .user-rank {
            width: 30px;
            color: #29CCB1;
            font-size: 12px;
            font-weight: 800;
        }
        .user-name {
            flex: 2;
            color: #3C444F;
            font-size: 11px;
            font-weight: 600;
        }
        .user-points {
            color: #FF5858;
            font-size: 11px;
            font-weight: 800;
            text-align: right;
        }
        @media screen and (max-width: 768px) {
            .content {
                width: 90%;
            }
            .user-list div {
                gap: 0.1px; /* 順位とアイコンの間の空白の幅を狭める */
            }
            .user-icon {
                width: 36px;
                height: 36px;
                margin-left: -2px; /* アイコンの位置を2px左に詰める */
            }
            .user-rank {
                width: 30px; /* 順位の幅を狭める */
                margin-left: -3px; /* 順位の位置を3px左に詰める */
                margin-right: -3px; /* 順位の位置を3px右に詰める */
            }
            .user-name {
                flex: 8; /* 名前の幅を広げる */
            }
        }
    </style>
</head>
<body>
    <div class="loading">ランキングデータ取得中・・・</div>
    <div class="content">
        <div class="ranking">
            <div class="overall-title">
                <div>ランキング</div>
            </div>
            <div class="user-list tab total">
                <!-- トータルデータ -->
            </div>
        </div>
    </div>
    <script>
        async function fetchData() {
            try {
                const response = await fetch('<https://script.google.com/macros/s/AKfycbw-_LuSe6vBUCaywHmcD8RSIzomlS5kS-39yCPt45cj2itVfPzM0YqxuNCFBkjbiCD9sQ/exec>');
                if (!response.ok) {
                    console.error('Network response was not ok:', response.statusText);
                    return;
                }
                return response.json();
            } catch (error) {
                console.error('Fetch error:', error);
            }
        }

        const createUserElement = function(user) {
            const div = document.createElement('div');
            div.innerHTML = `
                <div class="user-rank">${user.rank}</div>
                <div class="user-icon">
                    <img src="${user.image}" alt="${user.name}">
                </div>
                <div class="user-name">${user.name}</div>
                <div class="user-points">${user.points}pt</div>
            `;
            return div;
        };

        async function renderUserList() {
            const data = await fetchData();
            if (!data || !data[0] || !data[0]["ランキング結果"]) {
                console.error('No data fetched or data is empty');
                return;
            }

            const userList = data[0]["ランキング結果"];
            const isEmpty = userList.every(user => 
                user.rank === "位" && !user.image && !user.name && !user.points
            );

            if (isEmpty) {
                console.error('All user data is empty');
                return;
            }

            const tabDiv = document.querySelector('.user-list.tab.total');
            userList.forEach(user => {
                if (user.rank !== "位" || user.image || user.name || user.points) {
                    const userElement = createUserElement(user);
                    tabDiv.appendChild(userElement);
                }
            });

            document.querySelector('.loading').style.display = 'none'; // データ取得完了後に非表示
            document.querySelector('.content').style.display = 'flex'; // データがある場合に表示
        }

        renderUserList();
    </script>
</body>
</html>

※ ギフトを贈った際の即時反映はされません。 ※ 消費したエモカラランキングへの有償コイン消費量が同数の場合は、同率の順位で表示されます。 ※ ランキングに反映されるギフトは、エモカラ配信者ランキングの専用ギフトを贈った場合のみです。チア限定ギフトは含まれません。

⏰期間⏰

2024年7月5日 (金) 0:00 ~ 7月11日 (木) 23:59

🎁賞品🎁

1位~3位:『エモカラ』配信リストのバナー欄であなたの推しの配信者さんをご紹介

※ ミラティブの公式Xでもご紹介いたします🖼️

img1.png

※ 掲載期間は1日です。 ※ バナーで使用する、あなたからのコメントを後日、フォームにてお聞かせください。 ※ 画像の作成にあたり、エモモの撮影のお時間を頂きます。後日、撮影日程と撮影させて頂くエモモスロットをお知らせの「あなた宛」にてご連絡致します。 ※ 掲載時間⁨⁩は画像制作後「あなた宛」にてご連絡致します。

さらに❗好きな絵文字が2つ選べるエモカラ応援王リボンもゲットできる🎀✨