Mudanças entre as edições de "Widget:Teste"

De Wiki Gla
Ir para navegação Ir para pesquisar
Linha 10: Linha 10:
     </div>
     </div>
</div>
</div>
<script src="//api.html5media.info/1.2.2/html5media.min.js"></script>
<script src="//api.html5media.info/1.2.2/html5media.min.js"></script>
<script>
<script>
    (function () {
(function () {
        const raw = document.getElementById('infoboxboss-data');
    const raw = document.getElementById('infoboxboss-data');
        if (!raw) return;
    if (!raw) return;


        const habilidades = [];
    const habilidades = [];


        for (let i = 1; i <= 10; i++) {
    for (let i = 1; i <= 10; i++) {
            const nome = raw.dataset[`hab${i}`];
        const nome = raw.dataset[`hab${i}`];
            const descricao = raw.dataset[`de${i}`];
        const descricao = raw.dataset[`de${i}`];
            const videoFile = raw.dataset[`vid${i}`];
        const videoFile = raw.dataset[`vid${i}`];
            if (!nome || !videoFile) continue;
        if (!nome || !videoFile) continue;


            habilidades.push({
        habilidades.push({
                nome,
            nome,
                descricao,
            descricao,
                videoUrl: `https://wiki.gla.com.br/index.php/Special:FilePath/${videoFile}`,
            videoUrl: `https://wiki.gla.com.br/index.php/Special:FilePath/${videoFile}`,
                id: `video${i}`
            id: `video${i}`
            });
        });
        }
    }
 
    const tabsContainer = document.getElementById('skill-tabs');
    const videoContainer = document.getElementById('skill-videos');
    const descText = document.getElementById('desc-text');


         const tabsContainer = document.getElementById('skill-tabs');
    habilidades.forEach((hab, idx) => {
         const videoContainer = document.getElementById('skill-videos');
        // Botão
         const descText = document.getElementById('desc-text');
         const btn = document.createElement('button');
         btn.className = 'infobox-skill-tab' + (idx === 0 ? ' active' : '');
         btn.dataset.video = hab.id;
        btn.textContent = hab.nome;
        tabsContainer.appendChild(btn);


         habilidades.forEach((hab, idx) => {
         // Vídeo
            const btn = document.createElement('button');
        const videoWrapper = document.createElement('div');
            btn.className = 'infobox-skill-tab' + (idx === 0 ? ' active' : '');
        videoWrapper.id = hab.id;
            btn.dataset.video = hab.id;
        videoWrapper.className = 'skill-video' + (idx === 0 ? ' active' : '');
            btn.textContent = hab.nome;
            tabsContainer.appendChild(btn);


            const videoWrapper = document.createElement('div');
        const video = document.createElement('video');
            videoWrapper.id = hab.id;
        video.className = 'infobox-skill-video';
            videoWrapper.className = 'skill-video';
        video.controls = true;
            videoWrapper.style.display = idx === 0 ? 'block' : 'none';
        video.preload = 'auto';


            const video = document.createElement('video');
        const source = document.createElement('source');
            video.className = 'infobox-skill-video';
        source.src = hab.videoUrl;
            video.controls = true;
        source.type = 'video/mp4';
            video.preload = 'auto';
        video.appendChild(source);


            const source = document.createElement('source');
        videoWrapper.appendChild(video);
            source.src = hab.videoUrl;
        videoContainer.appendChild(videoWrapper);
            source.type = 'video/mp4';
    });
            video.appendChild(source);


            videoWrapper.appendChild(video);
    if (habilidades.length) {
            videoContainer.appendChild(videoWrapper);
        habilidades[0].descricao = habilidades[0].descricao.replace(/'''(.*?)'''/g, '<b>$1</b>');
         });
         descText.innerHTML = habilidades[0].descricao;
    }


        if (habilidades.length) {
    const tabs = document.querySelectorAll('.infobox-skill-tab');
            habilidades[0].descricao = habilidades[0].descricao.replace(/'''(.*?)'''/g, '<b>$1</b>');
    const videos = document.querySelectorAll('.skill-video');
            descText.innerHTML = `${habilidades[0].descricao}`;
        }


         const tabs = document.querySelectorAll('.infobox-skill-tab');
    tabs.forEach((tab, idx) => {
        const videos = document.querySelectorAll('.skill-video');
         tab.addEventListener('click', () => {
            tabs.forEach(t => t.classList.remove('active'));
            tab.classList.add('active');


        tabs.forEach((tab, idx) => {
             habilidades[idx].descricao = habilidades[idx].descricao.replace(/'''(.*?)'''/g, '<b>$1</b>');
             tab.addEventListener('click', () => {
            descText.innerHTML = habilidades[idx].descricao;
                tabs.forEach(t => t.classList.remove('active'));
                tab.classList.add('active');
                habilidades[idx].descricao = habilidades[idx].descricao.replace(/'''(.*?)'''/g, '<b>$1</b>');
                descText.innerHTML = `${habilidades[idx].descricao}`;


                videos.forEach(v => {
            videos.forEach(v => {
                    v.style.display = (v.id === habilidades[idx].id) ? 'block' : 'none';
                const videoTag = v.querySelector('video');
                    const videoTag = v.querySelector('video');
                if (v.id === habilidades[idx].id) {
                    if (v.id === habilidades[idx].id) {
                    v.classList.add('active');
                        videoTag.load();
                    videoTag.currentTime = 0;
                        videoTag.play();
                    videoTag.play();
                    } else {
                } else {
                        videoTag.pause();
                    v.classList.remove('active');
                    }
                    videoTag.pause();
                 });
                 }
             });
             });
         });
         });
    });


        raw.remove();
    raw.remove();
    })();
})();
</script>
</script>


<style>
<style>
    .skill-box {
.skill-box {
        background: none;
    background: none;
        color: #222;
    color: #222;
        border-radius: 12px;
    border-radius: 12px;
        box-shadow: none;
    box-shadow: none;
        width: 100%;
    width: 100%;
        max-width: 700px;
    max-width: 700px;
        box-sizing: border-box;
    box-sizing: border-box;
        padding: 24px 24px 20px 24px;
    padding: 24px 24px 20px 24px;
        display: flex;
    display: flex;
        flex-direction: column;
    flex-direction: column;
        align-items: center;
    align-items: center;
        gap: 18px;
    gap: 18px;
        backdrop-filter: blur(2px);
    backdrop-filter: blur(2px);
        margin: 0 auto 24px auto;
    margin: 0 auto 24px auto;
        margin-bottom: 0px;
    margin-bottom: 0px;
     }
}
 
.skill-video {
    aspect-ratio: 16 / 9;
    opacity: 0;
    transition: opacity 0.2s ease;
     display: none;
}


    .skill-video {
.skill-video.active {
        aspect-ratio: 16 / 9;
    display: block;
     }
     opacity: 1;
}
</style>
</style>

Edição das 22h26min de 23 de maio de 2025

<script src="//api.html5media.info/1.2.2/html5media.min.js"></script> <script> (function () {

   const raw = document.getElementById('infoboxboss-data');
   if (!raw) return;
   const habilidades = [];
   for (let i = 1; i <= 10; i++) {
       const nome = raw.dataset[`hab${i}`];
       const descricao = raw.dataset[`de${i}`];
       const videoFile = raw.dataset[`vid${i}`];
       if (!nome || !videoFile) continue;
       habilidades.push({
           nome,
           descricao,
           videoUrl: `https://wiki.gla.com.br/index.php/Special:FilePath/${videoFile}`,
           id: `video${i}`
       });
   }
   const tabsContainer = document.getElementById('skill-tabs');
   const videoContainer = document.getElementById('skill-videos');
   const descText = document.getElementById('desc-text');
   habilidades.forEach((hab, idx) => {
       // Botão
       const btn = document.createElement('button');
       btn.className = 'infobox-skill-tab' + (idx === 0 ? ' active' : );
       btn.dataset.video = hab.id;
       btn.textContent = hab.nome;
       tabsContainer.appendChild(btn);
       // Vídeo
       const videoWrapper = document.createElement('div');
       videoWrapper.id = hab.id;
       videoWrapper.className = 'skill-video' + (idx === 0 ? ' active' : );
       const video = document.createElement('video');
       video.className = 'infobox-skill-video';
       video.controls = true;
       video.preload = 'auto';
       const source = document.createElement('source');
       source.src = hab.videoUrl;
       source.type = 'video/mp4';
       video.appendChild(source);
       videoWrapper.appendChild(video);
       videoContainer.appendChild(videoWrapper);
   });
   if (habilidades.length) {
       habilidades[0].descricao = habilidades[0].descricao.replace(/(.*?)/g, '$1');
       descText.innerHTML = habilidades[0].descricao;
   }
   const tabs = document.querySelectorAll('.infobox-skill-tab');
   const videos = document.querySelectorAll('.skill-video');
   tabs.forEach((tab, idx) => {
       tab.addEventListener('click', () => {
           tabs.forEach(t => t.classList.remove('active'));
           tab.classList.add('active');
           habilidades[idx].descricao = habilidades[idx].descricao.replace(/(.*?)/g, '$1');
           descText.innerHTML = habilidades[idx].descricao;
           videos.forEach(v => {
               const videoTag = v.querySelector('video');
               if (v.id === habilidades[idx].id) {
                   v.classList.add('active');
                   videoTag.currentTime = 0;
                   videoTag.play();
               } else {
                   v.classList.remove('active');
                   videoTag.pause();
               }
           });
       });
   });
   raw.remove();

})(); </script>

<style> .skill-box {

   background: none;
   color: #222;
   border-radius: 12px;
   box-shadow: none;
   width: 100%;
   max-width: 700px;
   box-sizing: border-box;
   padding: 24px 24px 20px 24px;
   display: flex;
   flex-direction: column;
   align-items: center;
   gap: 18px;
   backdrop-filter: blur(2px);
   margin: 0 auto 24px auto;
   margin-bottom: 0px;

}

.skill-video {

   aspect-ratio: 16 / 9;
   opacity: 0;
   transition: opacity 0.2s ease;
   display: none;

}

.skill-video.active {

   display: block;
   opacity: 1;

} </style>