-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.html
117 lines (104 loc) · 3.81 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>5段階リッカート形式アンケート</title>
<style>
body {
font-family: Arial, sans-serif;
text-align: center;
padding: 50px;
}
.survey-container {
display: inline-block;
}
.emoji {
font-size: 50px;
cursor: pointer;
padding: 10px;
transition: transform 0.2s;
}
.emoji:hover {
transform: scale(1.2);
}
.selected {
border: 2px solid #4CAF50;
border-radius: 50%;
}
#result {
margin-top: 20px;
font-size: 24px;
}
#thank-you {
display: none;
margin-top: 20px;
font-size: 30px;
color: green;
}
</style>
</head>
<body>
<h1>アンケートにお答えください</h1>
<div class="survey-container">
<span class="emoji" data-value="1">😡</span>
<span class="emoji" data-value="2">😟</span>
<span class="emoji" data-value="3">😐</span>
<span class="emoji" data-value="4">😊</span>
<span class="emoji" data-value="5">😁</span>
</div>
<div id="result">選択した評価: なし</div>
<div id="thank-you">Thank you!</div>
<script>
const emojis = document.querySelectorAll('.emoji');
const result = document.getElementById('result');
const thankYouMessage = document.getElementById('thank-you');
let selectedValue = null;
let counter = 0; // 連番用のカウンター
emojis.forEach(emoji => {
emoji.addEventListener('click', () => {
// 以前の選択をクリア
emojis.forEach(e => e.classList.remove('selected'));
// 新しい選択をハイライト
emoji.classList.add('selected');
selectedValue = emoji.getAttribute('data-value');
// 結果を表示
result.textContent = `選択した評価: ${selectedValue}`;
// 「Thank you!」メッセージを表示し、一定時間後に初期化
thankYouMessage.style.display = 'block';
setTimeout(() => {
thankYouMessage.style.display = 'none';
resetSurvey();
}, 2000);
// 連番付きのテキストファイルを自動的にダウンロード
createAndDownloadFile(selectedValue);
});
});
function resetSurvey() {
// 選択をクリア
emojis.forEach(e => e.classList.remove('selected'));
result.textContent = '選択した評価: なし';
selectedValue = null;
}
function createAndDownloadFile(value) {
// 連番を生成 (6桁)
counter++;
const serialNumber = String(counter).padStart(6, '0'); // 6桁に0埋め
// テキストデータを生成
const textData = `${value}`;
const blob = new Blob([textData], { type: 'text/plain' });
const url = URL.createObjectURL(blob);
// ファイル名に6桁の連番を付加
const fileName = `result_${serialNumber}.txt`;
// 自動的にダウンロードをトリガーするリンクを作成
const a = document.createElement('a');
a.href = url;
a.download = fileName;
// リンクをクリックして自動的にダウンロード
a.click();
// リソースの解放
URL.revokeObjectURL(url);
}
</script>
</body>
</html>