DmitrMakeev commited on
Commit
c31af01
·
verified ·
1 Parent(s): b51b7e4

Create spoller.html

Browse files
Files changed (1) hide show
  1. spoller.html +309 -0
spoller.html ADDED
@@ -0,0 +1,309 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <style>
2
+ .spoiler-wrapper {
3
+ margin: 20px 0;
4
+ position: relative;
5
+ }
6
+
7
+ .spoiler-divider {
8
+ height: 1px;
9
+ background-color: #ddd;
10
+ margin: 10px 0;
11
+ }
12
+
13
+ .spoiler1-button {
14
+ display: flex;
15
+ align-items: center;
16
+ justify-content: center;
17
+ width: 100%;
18
+ padding: 12px 16px;
19
+ background-color: #f5f5f5;
20
+ border: none;
21
+ border-radius: 4px;
22
+ cursor: pointer;
23
+ font-size: 16px;
24
+ text-transform: uppercase;
25
+ letter-spacing: 0.5px;
26
+ transition: background-color 0.3s;
27
+ margin: 10px 0;
28
+ gap: 8px;
29
+ }
30
+
31
+ .spoiler1-button:hover {
32
+ background-color: #e0e0e0;
33
+ }
34
+
35
+ .spoiler1-content {
36
+ padding: 16px;
37
+ border: 1px solid #ddd;
38
+ border-top: none;
39
+ border-radius: 0 0 4px 4px;
40
+ display: none;
41
+ margin-top: -4px; /* Подтягиваем вплотную к кнопке */
42
+ }
43
+
44
+ .arrow {
45
+ flex-shrink: 0;
46
+ transition: transform 0.3s;
47
+ }
48
+
49
+ /* Десктопная версия (кнопка перед контентом) */
50
+ @media (min-width: 768px) {
51
+ .spoiler-desktop {
52
+ display: block;
53
+ }
54
+ .spoiler-mobile {
55
+ display: none;
56
+ }
57
+ .spoiler1-content {
58
+ margin-left: 0;
59
+ }
60
+ }
61
+
62
+ /* Мобильная версия (кнопка после контентом) */
63
+ @media (max-width: 767px) {
64
+ .spoiler-desktop {
65
+ display: none;
66
+ }
67
+ .spoiler-mobile {
68
+ display: flex;
69
+ flex-direction: column;
70
+ }
71
+ .spoiler-mobile .spoiler1-content {
72
+ order: 2;
73
+ border-top: 1px solid #ddd;
74
+ border-radius: 0 0 4px 4px;
75
+ margin-top: -4px;
76
+ }
77
+ .spoiler-mobile .spoiler1-button {
78
+ order: 1;
79
+ border-radius: 4px 4px 0 0;
80
+ margin-bottom: 0;
81
+ }
82
+ }
83
+ </style>
84
+
85
+ <div class="spoiler-divider"></div>
86
+
87
+ <!-- Десктопная версия (кнопка сверху) -->
88
+ <div class="spoiler-wrapper spoiler-desktop">
89
+ <button class="spoiler1-button" onclick="toggleSpoiler(this, 'desktop')" id="spoiler1ButtonDesktop">
90
+ <span class="spoiler-text">УЗНАТЬ ПРАВИЛЬНЫЙ ОТВЕТ</span>
91
+ <svg class="arrow" width="17" height="17" viewBox="0 0 17 17" xmlns="http://www.w3.org/2000/svg">
92
+ <path fill="none" stroke="#000000" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" d="M 3.642857 10.552631 L 8.31203 16 L 12.981202 10.552631 M 8.31203 15.221805 L 8.31203 1.214286"></path>
93
+ </svg>
94
+ </button>
95
+ <div class="spoiler1-content" id="spoiler1ContentDesktop">
96
+ <p>Это правильный ответ. Он будет скрыт до нажатия на кнопку.</p>
97
+ <p>Может содержать любой HTML-код: таблицы, изображения, списки и т.д.</p>
98
+ </div>
99
+ </div>
100
+
101
+ <!-- Мобильная версия (кнопка снизу) -->
102
+ <div class="spoiler-wrapper spoiler-mobile">
103
+ <button class="spoiler1-button" onclick="toggleSpoiler(this, 'mobile')" id="spoiler1ButtonMobile">
104
+ <span class="spoiler-text">УЗНАТЬ ПРАВИЛЬНЫЙ ОТВЕТ</span>
105
+ <svg class="arrow" width="17" height="17" viewBox="0 0 17 17" xmlns="http://www.w3.org/2000/svg">
106
+ <path fill="none" stroke="#000000" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" d="M 3.642857 10.552631 L 8.31203 16 L 12.981202 10.552631 M 8.31203 15.221805 L 8.31203 1.214286"></path>
107
+ </svg>
108
+ </button>
109
+ <div class="spoiler1-content" id="spoiler1ContentMobile">
110
+ <p>Это правильный ответ. Он будет скрыт до нажатия на кнопку.</p>
111
+ <p>Может содержать любой HTML-код: таблицы, изображения, списки и т.д.</p>
112
+ </div>
113
+ </div>
114
+
115
+ <div class="spoiler-divider"></div>
116
+
117
+ <script>
118
+ function toggleSpoiler(button, version) {
119
+ const isExpanded = button.classList.toggle('active');
120
+ const textSpan = button.querySelector('.spoiler-text');
121
+ const arrow = button.querySelector('.arrow');
122
+
123
+ textSpan.textContent = isExpanded ? 'СВЕРНУТЬ' : 'УЗНАТЬ ПРАВИЛЬНЫЙ ОТВЕТ';
124
+ arrow.style.transform = isExpanded ? 'rotate(180deg)' : 'rotate(0)';
125
+
126
+ if (version === 'desktop') {
127
+ const content = document.getElementById('spoiler1ContentDesktop');
128
+ content.style.display = isExpanded ? 'block' : 'none';
129
+
130
+ // Синхронизация для мобильной версии
131
+ const mobileButton = document.getElementById('spoiler1ButtonMobile');
132
+ if (mobileButton) {
133
+ mobileButton.classList.toggle('active', isExpanded);
134
+ mobileButton.querySelector('.spoiler-text').textContent = isExpanded ? 'СВЕРНУТЬ' : 'УЗНАТЬ ПРАВИЛЬНЫЙ ОТВЕТ';
135
+ mobileButton.querySelector('.arrow').style.transform = isExpanded ? 'rotate(180deg)' : 'rotate(0)';
136
+ document.getElementById('spoiler1ContentMobile').style.display = isExpanded ? 'block' : 'none';
137
+ }
138
+ } else {
139
+ const content = document.getElementById('spoiler1ContentMobile');
140
+ content.style.display = isExpanded ? 'block' : 'none';
141
+
142
+ // Синхронизация для десктопной версии
143
+ const desktopButton = document.getElementById('spoiler1ButtonDesktop');
144
+ if (desktopButton) {
145
+ desktopButton.classList.toggle('active', isExpanded);
146
+ desktopButton.querySelector('.spoiler-text').textContent = isExpanded ? 'СВЕРНУТЬ' : 'УЗНАТЬ ПРАВИЛЬНЫЙ ОТВЕТ';
147
+ desktopButton.querySelector('.arrow').style.transform = isExpanded ? 'rotate(180deg)' : 'rotate(0)';
148
+ document.getElementById('spoiler1ContentDesktop').style.display = isExpanded ? 'block' : 'none';
149
+ }
150
+ }
151
+ }
152
+ </script>
153
+
154
+
155
+
156
+ <style>
157
+ /* Стили остаются точно такими же, их можно не дублировать */
158
+ .spoiler-wrapper {
159
+ margin: 20px 0;
160
+ position: relative;
161
+ }
162
+
163
+ .spoiler-divider {
164
+ height: 1px;
165
+ background-color: #ddd;
166
+ margin: 10px 0;
167
+ }
168
+
169
+ .spoiler2-button { /* Изменено spoiler1 на spoiler2 */
170
+ display: flex;
171
+ align-items: center;
172
+ justify-content: center;
173
+ width: 100%;
174
+ padding: 12px 16px;
175
+ background-color: #f5f5f5;
176
+ border: none;
177
+ border-radius: 4px;
178
+ cursor: pointer;
179
+ font-size: 16px;
180
+ text-transform: uppercase;
181
+ letter-spacing: 0.5px;
182
+ transition: background-color 0.3s;
183
+ margin: 10px 0;
184
+ gap: 8px;
185
+ }
186
+
187
+ .spoiler2-button:hover { /* Изменено spoiler1 на spoiler2 */
188
+ background-color: #e0e0e0;
189
+ }
190
+
191
+ .spoiler2-content { /* Изменено spoiler1 на spoiler2 */
192
+ padding: 16px;
193
+ border: 1px solid #ddd;
194
+ border-top: none;
195
+ border-radius: 0 0 4px 4px;
196
+ display: none;
197
+ margin-top: -4px;
198
+ }
199
+
200
+ .arrow {
201
+ flex-shrink: 0;
202
+ transition: transform 0.3s;
203
+ }
204
+
205
+ /* Десктопная версия */
206
+ @media (min-width: 768px) {
207
+ .spoiler-desktop {
208
+ display: block;
209
+ }
210
+ .spoiler-mobile {
211
+ display: none;
212
+ }
213
+ .spoiler2-content { /* Изменено spoiler1 на spoiler2 */
214
+ margin-left: 0;
215
+ }
216
+ }
217
+
218
+ /* Мобильная версия */
219
+ @media (max-width: 767px) {
220
+ .spoiler-desktop {
221
+ display: none;
222
+ }
223
+ .spoiler-mobile {
224
+ display: flex;
225
+ flex-direction: column;
226
+ }
227
+ .spoiler-mobile .spoiler2-content { /* Изменено spoiler1 на spoiler2 */
228
+ order: 2;
229
+ border-top: 1px solid #ddd;
230
+ border-radius: 0 0 4px 4px;
231
+ margin-top: -4px;
232
+ }
233
+ .spoiler-mobile .spoiler2-button { /* Изменено spoiler1 на spoiler2 */
234
+ order: 1;
235
+ border-radius: 4px 4px 0 0;
236
+ margin-bottom: 0;
237
+ }
238
+ }
239
+ </style>
240
+
241
+ <div class="spoiler-divider"></div>
242
+
243
+ <!-- Десктопная версия второго спойлера -->
244
+ <div class="spoiler-wrapper spoiler-desktop">
245
+ <button class="spoiler2-button" onclick="toggleSpoiler2(this, 'desktop')" id="spoiler2ButtonDesktop">
246
+ <span class="spoiler-text">УЗНАТЬ ПРАВИЛЬНЫЙ ОТВЕТ</span>
247
+ <svg class="arrow" width="17" height="17" viewBox="0 0 17 17" xmlns="http://www.w3.org/2000/svg">
248
+ <path fill="none" stroke="#000000" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" d="M 3.642857 10.552631 L 8.31203 16 L 12.981202 10.552631 M 8.31203 15.221805 L 8.31203 1.214286"></path>
249
+ </svg>
250
+ </button>
251
+ <div class="spoiler2-content" id="spoiler2ContentDesktop">
252
+ <p>Это содержимое второго спойлера. Он будет скрыт до нажатия на кнопку.</p>
253
+ <p>Может содержать любой HTML-код: таблицы, изображения, списки и т.д.</p>
254
+ </div>
255
+ </div>
256
+
257
+ <!-- Мобильная версия второго спойлера -->
258
+ <div class="spoiler-wrapper spoiler-mobile">
259
+ <button class="spoiler2-button" onclick="toggleSpoiler2(this, 'mobile')" id="spoiler2ButtonMobile">
260
+ <span class="spoiler-text">УЗНАТЬ ПРАВИЛЬНЫЙ ОТВЕТ</span>
261
+ <svg class="arrow" width="17" height="17" viewBox="0 0 17 17" xmlns="http://www.w3.org/2000/svg">
262
+ <path fill="none" stroke="#000000" stroke-width="1.7" stroke-linecap="round" stroke-linejoin="round" d="M 3.642857 10.552631 L 8.31203 16 L 12.981202 10.552631 M 8.31203 15.221805 L 8.31203 1.214286"></path>
263
+ </svg>
264
+ </button>
265
+ <div class="spoiler2-content" id="spoiler2ContentMobile">
266
+ <p>Это содержимое второго спойлера. Он будет скрыт до нажатия на кнопку.</p>
267
+ <p>Может содержать любой HTML-код: таблицы, изображения, списки и т.д.</p>
268
+ </div>
269
+ </div>
270
+
271
+ <div class="spoiler-divider"></div>
272
+
273
+ <script>
274
+ // Функция для второго спойлера (изменено toggleSpoiler на toggleSpoiler2)
275
+ function toggleSpoiler2(button, version) {
276
+ const isExpanded = button.classList.toggle('active');
277
+ const textSpan = button.querySelector('.spoiler-text');
278
+ const arrow = button.querySelector('.arrow');
279
+
280
+ textSpan.textContent = isExpanded ? 'СВЕРНУТЬ' : 'УЗНАТЬ ПРАВИЛЬНЫЙ ОТВЕТ';
281
+ arrow.style.transform = isExpanded ? 'rotate(180deg)' : 'rotate(0)';
282
+
283
+ if (version === 'desktop') {
284
+ const content = document.getElementById('spoiler2ContentDesktop'); // Изменено 1 на 2
285
+ content.style.display = isExpanded ? 'block' : 'none';
286
+
287
+ // Синхронизация для мобильной версии
288
+ const mobileButton = document.getElementById('spoiler2ButtonMobile'); // Изменено 1 на 2
289
+ if (mobileButton) {
290
+ mobileButton.classList.toggle('active', isExpanded);
291
+ mobileButton.querySelector('.spoiler-text').textContent = isExpanded ? 'СВЕРНУТЬ' : 'УЗНАТЬ ПРАВИЛЬНЫЙ ОТВЕТ';
292
+ mobileButton.querySelector('.arrow').style.transform = isExpanded ? 'rotate(180deg)' : 'rotate(0)';
293
+ document.getElementById('spoiler2ContentMobile').style.display = isExpanded ? 'block' : 'none'; // Изменено 1 на 2
294
+ }
295
+ } else {
296
+ const content = document.getElementById('spoiler2ContentMobile'); // Изменено 1 на 2
297
+ content.style.display = isExpanded ? 'block' : 'none';
298
+
299
+ // Синхронизация для десктопной версии
300
+ const desktopButton = document.getElementById('spoiler2ButtonDesktop'); // Изменено 1 на 2
301
+ if (desktopButton) {
302
+ desktopButton.classList.toggle('active', isExpanded);
303
+ desktopButton.querySelector('.spoiler-text').textContent = isExpanded ? 'СВЕРНУТЬ' : 'УЗНАТЬ ПРАВИЛЬНЫЙ ОТВЕТ';
304
+ desktopButton.querySelector('.arrow').style.transform = isExpanded ? 'rotate(180deg)' : 'rotate(0)';
305
+ document.getElementById('spoiler2ContentDesktop').style.display = isExpanded ? 'block' : 'none'; // Изменено 1 на 2
306
+ }
307
+ }
308
+ }
309
+ </script>