|
|
| 第14行: |
第14行: |
| {{Html5Media|url=https://gh-proxy.com/raw.githubusercontent.com/Rizline-Chinese-Wiki/rizline-song-preview/main/%E3%80%90Utau%E7%BF%BB%E5%94%B1%E2%A7%B8%E5%8E%9F%E5%88%9BPV%E3%80%91%E3%83%A1%E3%83%AB%E3%83%86%E3%82%A3%E3%83%A9%E3%83%B3%E3%83%89%E3%83%8A%E3%82%A4%E3%83%88%E3%83%A1%E3%82%A2%E3%80%901%C3%9740%E3%80%91%20[BV1uKTyzkEr4_p1].mp4}} | | {{Html5Media|url=https://gh-proxy.com/raw.githubusercontent.com/Rizline-Chinese-Wiki/rizline-song-preview/main/%E3%80%90Utau%E7%BF%BB%E5%94%B1%E2%A7%B8%E5%8E%9F%E5%88%9BPV%E3%80%91%E3%83%A1%E3%83%AB%E3%83%86%E3%82%A3%E3%83%A9%E3%83%B3%E3%83%89%E3%83%8A%E3%82%A4%E3%83%88%E3%83%A1%E3%82%A2%E3%80%901%C3%9740%E3%80%91%20[BV1uKTyzkEr4_p1].mp4}} |
| {{Html5Media|url=https://pan.rizwiki.cn/d/%E9%AB%98%E9%80%9F/%E6%B5%8B%E8%AF%95%E6%96%87%E4%BB%B6%E5%A4%B9/%E3%80%90Utau%E7%BF%BB%E5%94%B1%E2%A7%B8%E5%8E%9F%E5%88%9BPV%E3%80%91%E3%83%A1%E3%83%AB%E3%83%86%E3%82%A3%E3%83%A9%E3%83%B3%E3%83%89%E3%83%8A%E3%82%A4%E3%83%88%E3%83%A1%E3%82%A2%E3%80%901%C3%9740%E3%80%91%20%5BBV1uKTyzkEr4_p1%5D.mp4?sign=V90_EzJjzDo8mAUhOXsII4fJYyy-R1V2fpHdXK8nr2s=:0}} | | {{Html5Media|url=https://pan.rizwiki.cn/d/%E9%AB%98%E9%80%9F/%E6%B5%8B%E8%AF%95%E6%96%87%E4%BB%B6%E5%A4%B9/%E3%80%90Utau%E7%BF%BB%E5%94%B1%E2%A7%B8%E5%8E%9F%E5%88%9BPV%E3%80%91%E3%83%A1%E3%83%AB%E3%83%86%E3%82%A3%E3%83%A9%E3%83%B3%E3%83%89%E3%83%8A%E3%82%A4%E3%83%88%E3%83%A1%E3%82%A2%E3%80%901%C3%9740%E3%80%91%20%5BBV1uKTyzkEr4_p1%5D.mp4?sign=V90_EzJjzDo8mAUhOXsII4fJYyy-R1V2fpHdXK8nr2s=:0}} |
|
| |
| <html>
| |
| <head>
| |
| <meta charset="UTF-8">
| |
| <style>
| |
| body {
| |
| margin: 0;
| |
| display: flex;
| |
| justify-content: center;
| |
| align-items: center;
| |
| min-height: 100vh;
| |
| }
| |
|
| |
| table {
| |
| border-radius: 12px;
| |
| overflow: hidden;
| |
| box-shadow: 0 8px 25px rgba(0, 0, 0, 0.5);
| |
| border: 1px solid #444;
| |
| max-width: 960px;
| |
| background-color: #2c2d30;
| |
| }
| |
|
| |
| td {
| |
| transition: background-color 0.4s ease;
| |
| padding: 0;
| |
| }
| |
|
| |
| #difficulty {
| |
| font-size: 1.5em;
| |
| font-weight: bold;
| |
| padding: 15px 0;
| |
| letter-spacing: 2px;
| |
| user-select: none;
| |
| transition: background-color 0.4s ease, transform 0.1s ease;
| |
| color: #111;
| |
| }
| |
| #difficulty:hover {
| |
| opacity: 0.9;
| |
| }
| |
| #difficulty:active {
| |
| transform: scale(0.98);
| |
| }
| |
|
| |
| #ratio {
| |
| font-size: 1.2em;
| |
| font-weight: 600;
| |
| display: flex;
| |
| justify-content: center;
| |
| align-items: center;
| |
| user-select: none;
| |
| transition: background-color 0.3s ease, transform 0.1s ease;
| |
| color: #111;
| |
| }
| |
| #ratio:hover {
| |
| background-color: #556677 !important;
| |
| }
| |
| #ratio:active {
| |
| transform: scale(0.95);
| |
| }
| |
|
| |
| #output {
| |
| background-color: #000;
| |
| line-height: 0;
| |
| }
| |
|
| |
| video.html5media-video {
| |
| width: 100%;
| |
| height: 100%;
| |
| object-fit: contain;
| |
| display: block;
| |
| }
| |
| </style>
| |
| </head>
| |
| <body>
| |
|
| |
| <table width="100%" style="border:none; border-collapse:collapse;">
| |
| <tr>
| |
| <td colspan="2" style="text-align:center; background-color:#57E4C4;">
| |
| <div id="difficulty" onclick="cycleDifficulty(this)" data-states='["EZ 1", "HD 6", "IN 11"]' data-current="0" style="cursor:pointer;">EZ 2</div>
| |
| </td>
| |
| </tr>
| |
| <tr style="height:300px">
| |
| <td width="15%" onclick="cycleRatio(document.getElementById('ratio'))" style="text-align:center; background-color:#ABCDEF; cursor:pointer;">
| |
| <div id="ratio" data-states='["16:9", "4:3"]' data-current="0" style="height:100%; cursor:pointer;">16:9</div>
| |
| </td>
| |
| <td style="height:100%; position:relative">
| |
| <span id="output" style="display:block; height:300px; overflow:hidden;"></span>
| |
| </td>
| |
| </tr>
| |
| </table>
| |
|
| |
| <script>
| |
| const songName = "Pastel Lines"
| |
|
| |
| const difficultyColors = {
| |
| "EZ": "#57E4C4",
| |
| "HD": "#FDBA61",
| |
| "IN": "#FE8661",
| |
| "AT": "#4C364B"
| |
| };
| |
|
| |
| function cycleDifficulty(element) {
| |
| const states = JSON.parse(element.getAttribute('data-states'))
| |
| const current = parseInt(element.getAttribute('data-current'))
| |
| const next = (current + 1) % states.length
| |
|
| |
| element.textContent = states[next]
| |
| element.setAttribute('data-current', next.toString())
| |
|
| |
| const difficultyType = states[next].split(' ')[0]
| |
| const color = difficultyColors[difficultyType] || '#FFFFFF'
| |
| element.style.backgroundColor = color
| |
| element.parentElement.style.backgroundColor = color
| |
|
| |
| updateOutput()
| |
| }
| |
|
| |
| function cycleRatio(element) {
| |
| const states = JSON.parse(element.getAttribute('data-states'))
| |
| const current = parseInt(element.getAttribute('data-current'))
| |
| const next = (current + 1) % states.length
| |
|
| |
| element.textContent = states[next]
| |
| element.setAttribute('data-current', next.toString())
| |
|
| |
| updateOutput()
| |
| }
| |
|
| |
| function updateOutput() {
| |
| const difficultyDiv = document.getElementById('difficulty')
| |
| const ratioDiv = document.getElementById('ratio')
| |
|
| |
| const difficulty = difficultyDiv.textContent.split(' ')[0]
| |
| const ratio = ratioDiv.textContent.replace(':', '-')
| |
|
| |
| const videoUrl = `https://raw.githubusercontent.com/Rizline-Chinese-Wiki/rizline-song-preview/main/${ratio}_${songName}_${difficulty}.mp4`
| |
|
| |
| document.getElementById('output').innerHTML = `
| |
| <video class="html5media-video" src="${videoUrl}" controls preload="metadata" loading="lazy" style="height:100%; object-fit:contain;"></video>
| |
| `
| |
| }
| |
|
| |
| document.addEventListener('DOMContentLoaded', function () {
| |
| const diffDiv = document.getElementById('difficulty')
| |
| const firstDiff = JSON.parse(diffDiv.getAttribute('data-states'))[0];
| |
| const diffType = firstDiff.split(' ')[0]
| |
|
| |
| diffDiv.textContent = firstDiff
| |
| diffDiv.style.backgroundColor = difficultyColors[diffType]
| |
| diffDiv.parentElement.style.backgroundColor = difficultyColors[diffType]
| |
|
| |
| updateOutput();
| |
| });
| |
| </script>
| |
|
| |
| </body>
| |
| </html>
| |
|
| |
|
| {{BMV | | {{BMV |
艾拉单推鸽(*¯ㅿ¯*;)
咕
/* ===== 2025.4.13 ===== */
某人因不会修bug而下架了ta心爱的可视化编辑
R.I.P
/* ===== 2025.4.13 过了几分钟... ===== */
草报错了..
算了,晚安
zzz
以下是测试-------
这是啥
您可以点击下方的难度与比例以改变预览视频对应的谱面难度与视频比例。
测试123