|
|
<!DOCTYPE html>
|
|
|
<html lang="zh-CN">
|
|
|
|
|
|
<head>
|
|
|
<meta charset="UTF-8">
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=0.1, maximum-scale=5.0, user-scalable=yes">
|
|
|
<title>e-plus 模拟器</title>
|
|
|
<style>
|
|
|
html, body {
|
|
|
font-family: 'Arial', sans-serif;
|
|
|
margin: 0;
|
|
|
padding: 0;
|
|
|
background-color: #f9f9f9;
|
|
|
color: #333;
|
|
|
height: 100%;
|
|
|
overflow: hidden;
|
|
|
}
|
|
|
|
|
|
h2 {
|
|
|
margin-bottom: 5px;
|
|
|
}
|
|
|
|
|
|
h4 {
|
|
|
margin-top: 0;
|
|
|
color: #666;
|
|
|
}
|
|
|
|
|
|
.container {
|
|
|
display: flex;
|
|
|
min-height: 100vh;
|
|
|
}
|
|
|
|
|
|
.control {
|
|
|
background-color: #fff;
|
|
|
padding: 20px;
|
|
|
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
|
|
|
flex: 1;
|
|
|
min-width: 300px;
|
|
|
overflow-y: auto;
|
|
|
height: 100vh;
|
|
|
}
|
|
|
|
|
|
.template {
|
|
|
background-color: #f9f9f9;
|
|
|
padding: 20px;
|
|
|
display: flex;
|
|
|
flex: 2;
|
|
|
}
|
|
|
|
|
|
.control-group {
|
|
|
margin-bottom: 15px;
|
|
|
}
|
|
|
|
|
|
label {
|
|
|
display: block;
|
|
|
margin-bottom: 5px;
|
|
|
font-weight: bold;
|
|
|
}
|
|
|
|
|
|
input[type="text"],
|
|
|
select {
|
|
|
width: 100%;
|
|
|
padding: 6px;
|
|
|
border: 1px solid #ddd;
|
|
|
border-radius: 4px;
|
|
|
box-sizing: border-box;
|
|
|
height: 36px;
|
|
|
}
|
|
|
|
|
|
#template-container {
|
|
|
width: 600px;
|
|
|
margin: auto;
|
|
|
transition: width 0.1s ease;
|
|
|
}
|
|
|
|
|
|
.c-text,
|
|
|
.c-text-link {
|
|
|
white-space: pre-wrap
|
|
|
}
|
|
|
|
|
|
.selector {
|
|
|
display: flex;
|
|
|
gap: 16px;
|
|
|
margin-bottom: 4px;
|
|
|
}
|
|
|
|
|
|
.radio {
|
|
|
display: flex;
|
|
|
align-items: center;
|
|
|
gap: 8px;
|
|
|
cursor: pointer;
|
|
|
margin-bottom: 0;
|
|
|
}
|
|
|
|
|
|
#tip {
|
|
|
color: #888;
|
|
|
text-align: center;
|
|
|
}
|
|
|
|
|
|
a {
|
|
|
color: #333;
|
|
|
}
|
|
|
|
|
|
@media (max-width: 768px) {
|
|
|
html, body {
|
|
|
overflow: auto;
|
|
|
}
|
|
|
|
|
|
.container {
|
|
|
flex-direction: column;
|
|
|
}
|
|
|
|
|
|
.control,
|
|
|
.template {
|
|
|
flex: none;
|
|
|
width: 100%;
|
|
|
}
|
|
|
|
|
|
.control {
|
|
|
height: 100vh;
|
|
|
overflow-y: auto;
|
|
|
padding-bottom: 100vh;
|
|
|
}
|
|
|
|
|
|
.template {
|
|
|
order: -1;
|
|
|
}
|
|
|
|
|
|
#template-container {
|
|
|
width: 100%;
|
|
|
}
|
|
|
}
|
|
|
</style>
|
|
|
<link type="text/css" rel="stylesheet" href="./base.css" title="emps">
|
|
|
|
|
|
</head>
|
|
|
|
|
|
<body>
|
|
|
<div class="container">
|
|
|
|
|
|
<div class="control">
|
|
|
<h2>e-plus 模拟器</h2>
|
|
|
<h4 id="author">v0.4 by wlt233</h4>
|
|
|
|
|
|
|
|
|
<div class="control-group">
|
|
|
<label for="title">标题</label>
|
|
|
<input type="text" id="title" value="ラブライブ!サンシャイン!! Aqours Finale LoveLive! ~永久stage~">
|
|
|
</div>
|
|
|
<div class="control-group">
|
|
|
<label for="datetime">时间</label>
|
|
|
<input type="text" id="datetime" value="2025/06/22(日) 15:00開場 17:00開演">
|
|
|
</div>
|
|
|
<div class="control-group">
|
|
|
<label for="message">注释</label>
|
|
|
<input type="text" id="message" value="※当選した公演日時を表示しています">
|
|
|
</div>
|
|
|
<div class="control-group">
|
|
|
<label for="place">场地</label>
|
|
|
<input type="text" id="place" value="ベルーナドーム(埼玉県)">
|
|
|
<select id="place-list"></select>
|
|
|
</div>
|
|
|
<div class="control-group">
|
|
|
<label for="reception">抽选</label>
|
|
|
<div class="selector u-mt8">
|
|
|
<label class="radio">
|
|
|
<input type="radio" name="reception" value="lottery" checked> 抽選
|
|
|
</label>
|
|
|
<label class="radio">
|
|
|
<input type="radio" name="reception" value="first"> 先着
|
|
|
</label>
|
|
|
</div>
|
|
|
<input type="text" id="reception" value="<Day.2>最速先行抽選">
|
|
|
</div>
|
|
|
<div class="control-group">
|
|
|
<label for="status">结果</label>
|
|
|
<div class="selector u-mt8">
|
|
|
<label class="radio">
|
|
|
<input type="radio" name="status" value="win" checked> 当選
|
|
|
</label>
|
|
|
<label class="radio">
|
|
|
<input type="radio" name="status" value="lose"> 落選
|
|
|
</label>
|
|
|
<label class="radio">
|
|
|
<input type="radio" name="status" value="wait"> 抽選前
|
|
|
</label>
|
|
|
<label class="radio">
|
|
|
<input type="radio" name="status" value="online"> 視聴
|
|
|
</label>
|
|
|
</div>
|
|
|
<div style="display: flex;">
|
|
|
<input type="text" id="status-msg-head" value="当選" style="width: 15%; display: flex">
|
|
|
<input type="text" id="status-msg-body" value="詳細をご確認ください" style="width: 85%; display: flex">
|
|
|
</div>
|
|
|
<select id="status-list"></select>
|
|
|
</div>
|
|
|
|
|
|
<div class="control-group">
|
|
|
<label>页面宽度</label>
|
|
|
<input type="range" id="width" min="300" max="1000" value="600" style="width: 100%;">
|
|
|
</div>
|
|
|
|
|
|
<div>免责声明:此网页仅供娱乐,请勿当真!请勿使用网页伪造任何证明!用户操作导致的任何风险和结果由用户自己承担!</div>
|
|
|
<div><br>友情链接: <a href="https://tqlwsl.moe/loveca">Loveca抽卡模拟器</a></div>
|
|
|
</div>
|
|
|
|
|
|
<div class="template">
|
|
|
<div id="template-container" style="position:relative;overflow:hidden">
|
|
|
<!--虽然很脱裤子放屁,但能看到这里我觉得你也会按 f12 了,请为自己的行为负责-->
|
|
|
<div style="position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-45deg);color:rgba(0,0,0,0.1);font-size:48px;white-space:nowrap;z-index:1" id="watermark">仅供娱乐,请勿当真</div>
|
|
|
<div class="m-ms01-select">
|
|
|
<div class="m-ms01-select__item">
|
|
|
<label class="c-radio c-radio--btn">
|
|
|
<input class="c-radio__input" type="radio" readonly="" value="all" name="option" checked="">
|
|
|
<span class="c-radio__body">
|
|
|
<span class="c-radio__icon"></span>
|
|
|
<span class="c-radio__label" id="msO1-filter-all">すべて</span>
|
|
|
</span>
|
|
|
</label>
|
|
|
</div>
|
|
|
<div class="m-ms01-select__item">
|
|
|
<label class="c-radio c-radio--btn">
|
|
|
<input class="c-radio__input" type="radio" readonly="" value="unpaid_or_unissue" name="option">
|
|
|
<span class="c-radio__body">
|
|
|
<span class="c-radio__icon"></span>
|
|
|
<span class="c-radio__label" id="msO1-filter-unpaid_or_unissue">未入金・未発券</span>
|
|
|
</span>
|
|
|
</label>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="m-ms01-aplItem m-ms01-aplItem-" data-id="">
|
|
|
<div class="m-ms01-aplItem__inner">
|
|
|
<div class="m-ms01-aplItem__top">
|
|
|
<a class="c-text-link c-text--type4 u-text--medium"
|
|
|
data-id="ms01-order_list--tour_name" id="ms01-order_list--tour_name" data-wovn-ignore="true"
|
|
|
href="">ラブライブ!サンシャイン!! Aqours Finale LoveLive! ~永久stage~</a>
|
|
|
<p class="c-text c-text--type3 u-text--medium u-mt8" data-id="ms01-order_list--event_datetime"
|
|
|
id="ms01-order_list--event_datetime">2025/06/22(日) 15:00開場 17:00開演</p>
|
|
|
<p class="c-text c-text--type1" id="ms01-order_list--hope_num_message">※当選した公演日時を表示しています</p>
|
|
|
<p class="c-text c-text--type3 u-text--medium m-ms01-aplItem__place u-mt8"
|
|
|
id="ms01-order_list--venue_name">ベルーナドーム(埼玉県)</p>
|
|
|
<p class="c-text c-text--type3 u-text--medium u-mt8" id="ms01-order_list--order_datetime"></p>
|
|
|
</div>
|
|
|
<div class="m-ms01-aplItem__reception u-mt8"><span
|
|
|
id="ms01-order_list--first_arrival_lottery_image_division" class="c-label ">抽選</span>
|
|
|
<p class="c-text c-text--type3 u-text--medium" id="ms01-order_list--reception_name"><Day.2>最速先行抽選</p>
|
|
|
</div>
|
|
|
<div class="c-status c-status-win u-mt8" id="ms01-order_list--status_color">
|
|
|
<div class="c-status__head" id="ms01-order_list--election_status_message">当選</div>
|
|
|
<div class="c-status__body" id="ms01-order_list--status_body">
|
|
|
<div id="ms01-order_list--status_message">詳細をご確認ください</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<a class="c-btn u-mt16" id="ms01-order_list--detail_button" href=""><span>詳細</span></a>
|
|
|
<!--<div><p id="tip">仅供娱乐,请勿当真</p></div>-->
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
|
|
|
<script>
|
|
|
function updateContent(inputId, targetSelector) {
|
|
|
document.getElementById(inputId).addEventListener("input", function () {
|
|
|
document.querySelector(targetSelector).textContent = this.value;
|
|
|
});
|
|
|
}
|
|
|
updateContent("title", "#ms01-order_list--tour_name");
|
|
|
updateContent("datetime", "#ms01-order_list--event_datetime");
|
|
|
updateContent("message", "#ms01-order_list--hope_num_message");
|
|
|
updateContent("place", "#ms01-order_list--venue_name");
|
|
|
updateContent("reception", "#ms01-order_list--reception_name");
|
|
|
updateContent("status-msg-head", "#ms01-order_list--election_status_message");
|
|
|
updateContent("status-msg-body", "#ms01-order_list--status_message");
|
|
|
|
|
|
const originWidth = window.innerWidth;
|
|
|
document.getElementById('width').max = parseInt(originWidth * 1.5);
|
|
|
document.getElementById("width").addEventListener("input", function () {
|
|
|
const width = this.value;
|
|
|
document.querySelector("html").style.width = (parseInt(width) + 40) + "px";
|
|
|
document.getElementById("template-container").style.width = width + "px";
|
|
|
});
|
|
|
|
|
|
document.querySelectorAll('input[name="reception"]').forEach(function (radio) {
|
|
|
radio.addEventListener("change", function () {
|
|
|
switch (this.value) {
|
|
|
case "first":
|
|
|
document.getElementById("ms01-order_list--first_arrival_lottery_image_division").textContent = "先着";
|
|
|
document.getElementById("reception").value = "<Day.2>一般発売";
|
|
|
document.getElementById("ms01-order_list--reception_name").textContent = "<Day.2>一般発売";
|
|
|
break;
|
|
|
default:
|
|
|
document.getElementById("ms01-order_list--first_arrival_lottery_image_division").textContent = "抽選";
|
|
|
document.getElementById("reception").value = "<Day.2>最速先行抽選";
|
|
|
document.getElementById("ms01-order_list--reception_name").textContent = "<Day.2>最速先行抽選";
|
|
|
}
|
|
|
});
|
|
|
});
|
|
|
|
|
|
document.querySelectorAll('input[name="status"]').forEach(function (radio) {
|
|
|
radio.addEventListener("change", function () {
|
|
|
const statusDiv = document.getElementById("ms01-order_list--status_color");
|
|
|
statusDiv.classList.remove("c-status-win");
|
|
|
statusDiv.classList.remove("c-status-wait");
|
|
|
if (statusDiv.children.length == 1) {
|
|
|
statusDiv.innerHTML = `<div class="c-status__head" id="ms01-order_list--election_status_message">当選</div><div class="c-status__body" id="ms01-order_list--status_body"><div id="ms01-order_list--status_message">詳細をご確認ください</div></div>`;
|
|
|
}
|
|
|
switch (this.value) {
|
|
|
case "win":
|
|
|
statusDiv.classList.add("c-status-win");
|
|
|
break;
|
|
|
case "wait":
|
|
|
statusDiv.classList.add("c-status-wait");
|
|
|
break;
|
|
|
case "online":
|
|
|
if (statusDiv.children.length == 2) statusDiv.children[0].remove();
|
|
|
statusDiv.classList.add("c-status-win");
|
|
|
break
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
|
});
|
|
|
});
|
|
|
|
|
|
const statusList = `
|
|
|
当選 詳細をご確認ください
|
|
|
当選 ダウンロード開始日:2025/06/20 15:00~
|
|
|
当選 チケットはダウンロ一ド済みです。ダウンロ一ド日:2025/06/20
|
|
|
当選 支払期限切れ
|
|
|
落選 チケットをご用意できませんでした
|
|
|
無効 申込み:取消しました
|
|
|
抽選前 抽選結果発表:2025/06/19 13:00~2025/06/20 18:00
|
|
|
視聴詳細ページ:チケットが表示できます
|
|
|
`.trim().split("\n").map(status => `<option value="${status}">${status}</option>`).join("");
|
|
|
document.getElementById("status-list").innerHTML = statusList;
|
|
|
document.getElementById("status-list").value = "当選 詳細をご確認ください";
|
|
|
document.getElementById("status-list").addEventListener("change", function () {
|
|
|
const [head, body] = this.value.split(" ", 2);
|
|
|
document.getElementById("status-msg-head").value = head;
|
|
|
document.getElementById("status-msg-body").value = body;
|
|
|
document.getElementById("status-msg-body").dispatchEvent(new Event('input'));
|
|
|
document.getElementById("status-msg-head").dispatchEvent(new Event('input'));
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
const placeList = `
|
|
|
-
|
|
|
東京ドーム(東京都)
|
|
|
Kアリーナ横浜(神奈川県)
|
|
|
ベルーナドーム(埼玉県)
|
|
|
国家会展中心(上海)虹館EH(海外)
|
|
|
国立代々木競技場 第一体育館(東京都)
|
|
|
日本武道館(東京都)
|
|
|
有明アリーナ(東京都)
|
|
|
両国国技館(東京都)
|
|
|
武蔵野の森総合スポーツプラザ(東京都)
|
|
|
京王アリーナTOKYO・メインアリーナ(東京都)
|
|
|
Zepp DiverCity (TOKYO)(東京都)
|
|
|
ダイバーシティ東京 プラザ 2Fフェスティバル広場(東京都)
|
|
|
東京ビッグサイト 東1ホール(東京都)
|
|
|
ぴあアリーナMM(神奈川県)
|
|
|
横浜アリーナ(神奈川県)
|
|
|
パシフィコ横浜 国立大ホール(神奈川県)
|
|
|
横浜BLITZ(神奈川県)
|
|
|
さいたまスーパーアリーナ(埼玉県)
|
|
|
幕張メッセ 国際展示場(千葉県)
|
|
|
幕張メッセ 幕張イベントホール(千葉県)
|
|
|
名古屋国際会議場 センチュリーホール(愛知県)
|
|
|
AICHI SKY EXPO ホールA(愛知県)
|
|
|
Niterra日本特殊陶業市民会館フォレストホール(愛知県)
|
|
|
石川県産業展示館 (4号館)(石川県)
|
|
|
キラメッセぬまづ(静岡県)
|
|
|
沼津市民文化センター 大ホール(静岡県)
|
|
|
京セラドーム大阪(大阪府)
|
|
|
大阪城ホール(大阪府)
|
|
|
オリックス劇場(大阪府)
|
|
|
札幌市民ホール(北海道)
|
|
|
仙台サンプラザホール(宮城県)
|
|
|
福岡市民ホール 大ホール(福岡県)
|
|
|
万代南夢宮上海文化センター 夢想劇場(海外)
|
|
|
万代南夢宮上海文化センター 未来劇場(海外)
|
|
|
上海メルセデス・ベンツ文化センター(海外)
|
|
|
静安体育センター・体育館(海外)
|
|
|
広州亜運城総合体育館(海外)
|
|
|
`.trim().split("\n").map(place => `<option value="${place}">${place}</option>`).join("");
|
|
|
document.getElementById("place-list").innerHTML = placeList;
|
|
|
document.getElementById("place-list").value = "-";
|
|
|
document.getElementById("place-list").addEventListener("change", function () {
|
|
|
document.getElementById("place").value = this.value;
|
|
|
document.getElementById("place").dispatchEvent(new Event('input'));
|
|
|
});
|
|
|
|
|
|
|
|
|
// 虽然很脱裤子放屁,但能看到这里我觉得你也会按 f12 了,请为自己的行为负责
|
|
|
let clickCount = 0;
|
|
|
let lastClickTime = 0;
|
|
|
document.getElementById("author").addEventListener("click", function() {
|
|
|
const now = Date.now();
|
|
|
if (now - lastClickTime > 500) clickCount = 0;
|
|
|
clickCount++;
|
|
|
lastClickTime = now;
|
|
|
if (clickCount === 5) document.getElementById("watermark").remove();
|
|
|
});
|
|
|
|
|
|
</script>
|
|
|
</body>
|
|
|
|
|
|
</html> |