<script type="text/javascript" src="https://forumstatic.ru/files/0015/c4/3f/52361.js"></script> <script type="text/javascript"> HTMLinPost.groups = [1,2,3,4,5,6,7,8,9,10]; // Группы, допущенные к вставке HTML в посты HTMLinPost.noAccess = []; // Пользователи с запретом вставки HTML в посты HTMLinPost.parseHTMLinPosts() </script> <script src="//hostjs-mybb2011.narod.ru/js/transform_code_boxr.js?"></script>
тестируем скрипты
Сообщений 1 страница 2 из 2
Поделиться113 июля 11:02
Поделиться226 октября 10:39
[html]<style>
.chest-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: 1px;
max-width: 644px;
margin: 20px auto;
padding: 20px;
justify-items: center;
}
.chest-item {
position: relative;
width: 160px;
height: 149px;
cursor: pointer;
transition: all 0.3s ease;
overflow: hidden;
}
.chest-image {
width: 100%;
height: 100%;
object-fit: cover;
border-radius: 5px;
transition: all 0.3s ease;
}
.chest-overlay {
position: absolute;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(139, 0, 0, 0.7);
backdrop-filter: blur(5px);
-webkit-backdrop-filter: blur(5px);
color: white;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
opacity: 0;
transition: opacity 0.3s ease;
border-radius: 5px;
font-family: 'Philosopher', sans-serif;
text-align: center;
}
.chest-item:hover .chest-overlay {
opacity: 1;
}
.chest-number {
font-size: 24px;
margin-bottom: 5px;
color: #fc6014;
text-shadow: 1px 1px 2px rgba(0,0,0,0.8);
}
.chest-status {
font-size: 14px;
color: #c89f6e;
text-shadow: 1px 1px 2px rgba(0,0,0,0.8);
margin-bottom: 8px;
}
.chest-button {
background: linear-gradient(135deg, #8B0000 0%, #4a0000 100%);
color: white;
border: none;
padding: 6px 12px;
border-radius: 5px;
cursor: pointer;
font-family: 'Philosopher', sans-serif;
font-size: 12px;
transition: all 0.3s ease;
margin-top: 5px;
}
.chest-button:hover {
background: linear-gradient(135deg, #a52a2a 0%, #5a0000 100%);
transform: scale(1.05);
}
/* Статусы */
.chest-taken .chest-overlay {
background: rgba(117, 117, 117, 0.7);
backdrop-filter: blur(5px);
-webkit-backdrop-filter: blur(5px);
}
.chest-taken .chest-status {
color: #ff6b6b;
}
.chest-taken .chest-button {
background: #757575;
cursor: not-allowed;
}
/* Уведомление об успешном копировании */
.copy-notification {
position: fixed;
top: 750px;
left: 50%;
transform: translateX(-50%);
background: linear-gradient(135deg, #2c1a1a 0%, #1a1a2e 100%);
color: #ff6b6b;
padding: 12px 24px;
border-radius: 8px;
border: 2px solid #8B0000;
font-family: 'Philosopher', sans-serif;
font-size: 14px;
z-index: 1001;
opacity: 0;
transition: opacity 0.3s ease;
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.5);
}
</style>
<div class="chest-grid">
<!-- Шкатулка 1 -->
<div class="chest-item" data-chest="1">
<img src="https://imgur.com/k9j6OSa.png" alt="Шкатулка 1" class="chest-image">
<div class="chest-overlay">
<div class="chest-number">№1</div>
<div class="chest-status">Свободна</div>
<button class="chest-button">Выбрать</button>
</div>
</div>
<!-- Шкатулка 2 -->
<div class="chest-item" data-chest="2">
<img src="https://imgur.com/VpmxUuF.png" alt="Шкатулка 2" class="chest-image">
<div class="chest-overlay">
<div class="chest-number">№2</div>
<div class="chest-status">Свободна</div>
<button class="chest-button">Выбрать</button>
</div>
</div>
<!-- Шкатулка 3 -->
<div class="chest-item" data-chest="3">
<img src="https://imgur.com/Iz42CEx.png" alt="Шкатулка 3" class="chest-image">
<div class="chest-overlay">
<div class="chest-number">№3</div>
<div class="chest-status">Свободна</div>
<button class="chest-button">Выбрать</button>
</div>
</div>
<!-- Шкатулка 4 -->
<div class="chest-item" data-chest="4">
<img src="https://imgur.com/harNHvk.png" alt="Шкатулка 4" class="chest-image">
<div class="chest-overlay">
<div class="chest-number">№4</div>
<div class="chest-status">Свободна</div>
<button class="chest-button">Выбрать</button>
</div>
</div>
<!-- Шкатулка 5 -->
<div class="chest-item" data-chest="5">
<img src="https://imgur.com/u26Q8nc.png" alt="Шкатулка 5" class="chest-image">
<div class="chest-overlay">
<div class="chest-number">№5</div>
<div class="chest-status">Свободна</div>
<button class="chest-button">Выбрать</button>
</div>
</div>
<!-- Шкатулка 6 -->
<div class="chest-item" data-chest="6">
<img src="https://imgur.com/EvF7kw4.png" alt="Шкатулка 6" class="chest-image">
<div class="chest-overlay">
<div class="chest-number">№6</div>
<div class="chest-status">Свободна</div>
<button class="chest-button">Выбрать</button>
</div>
</div>
<!-- Шкатулка 7 -->
<div class="chest-item" data-chest="7">
<img src="https://imgur.com/PxLrGh0.png" alt="Шкатулка 7" class="chest-image">
<div class="chest-overlay">
<div class="chest-number">№7</div>
<div class="chest-status">Свободна</div>
<button class="chest-button">Выбрать</button>
</div>
</div>
<!-- Шкатулка 8 -->
<div class="chest-item" data-chest="8">
<img src="https://imgur.com/JGrQ3t3.png" alt="Шкатулка 8" class="chest-image">
<div class="chest-overlay">
<div class="chest-number">№8</div>
<div class="chest-status">Свободна</div>
<button class="chest-button">Выбрать</button>
</div>
</div>
<!-- Шкатулка 9 -->
<div class="chest-item" data-chest="9">
<img src="https://imgur.com/erhu5Mx.png" alt="Шкатулка 9" class="chest-image">
<div class="chest-overlay">
<div class="chest-number">№9</div>
<div class="chest-status">Свободна</div>
<button class="chest-button">Выбрать</button>
</div>
</div>
<!-- Шкатулка 10 -->
<div class="chest-item" data-chest="10">
<img src="https://imgur.com/O4bzAoJ.png" alt="Шкатулка 10" class="chest-image">
<div class="chest-overlay">
<div class="chest-number">№10</div>
<div class="chest-status">Свободна</div>
<button class="chest-button">Выбрать</button>
</div>
</div>
<!-- Шкатулка 11 -->
<div class="chest-item" data-chest="11">
<img src="https://imgur.com/xZZL3B7.png" alt="Шкатулка 11" class="chest-image">
<div class="chest-overlay">
<div class="chest-number">№11</div>
<div class="chest-status">Свободна</div>
<button class="chest-button">Выбрать</button>
</div>
</div>
<!-- Шкатулка 12 -->
<div class="chest-item" data-chest="12">
<img src="https://imgur.com/KylUtiY.png" alt="Шкатулка 12" class="chest-image">
<div class="chest-overlay">
<div class="chest-number">№12</div>
<div class="chest-status">Свободна</div>
<button class="chest-button">Выбрать</button>
</div>
</div>
<!-- Шкатулка 13 -->
<div class="chest-item" data-chest="13">
<img src="https://imgur.com/lsmFp0s.png" alt="Шкатулка 13" class="chest-image">
<div class="chest-overlay">
<div class="chest-number">№13</div>
<div class="chest-status">Свободна</div>
<button class="chest-button">Выбрать</button>
</div>
</div>
<!-- Шкатулка 14 -->
<div class="chest-item" data-chest="14">
<img src="https://imgur.com/TtrymQN.png" alt="Шкатулка 14" class="chest-image">
<div class="chest-overlay">
<div class="chest-number">№14</div>
<div class="chest-status">Свободна</div>
<button class="chest-button">Выбрать</button>
</div>
</div>
<!-- Шкатулка 15 -->
<div class="chest-item" data-chest="15">
<img src="https://imgur.com/63lI4kP.png" alt="Шкатулка 15" class="chest-image">
<div class="chest-overlay">
<div class="chest-number">№15</div>
<div class="chest-status">Свободна</div>
<button class="chest-button">Выбрать</button>
</div>
</div>
<!-- Шкатулка 16 -->
<div class="chest-item" data-chest="16">
<img src="https://imgur.com/6ccKWoP.png" alt="Шкатулка 16" class="chest-image">
<div class="chest-overlay">
<div class="chest-number">№16</div>
<div class="chest-status">Свободна</div>
<button class="chest-button">Выбрать</button>
</div>
</div>
</div>
<!-- Уведомление об успешном копировании -->
<div id="copyNotification" class="copy-notification">
✅ Текст скопирован! Теперь вставьте его в комментарий!
</div>
<!-- Инструкция -->
<div style="text-align: center; margin: 20px 0; padding: 15px; background: rgb(163 121 73 / 19%); border-radius: 8px;">
<strong>📝 Как участвовать:</strong>
<p>1. Наведите на шкатулку чтобы увидеть номер, статус и кнопку<br>
2. Нажмите на кнопку "Выбрать" чтобы скопировать текст<br>
3. Вставьте скопированный текст в комментариях<br>
4. Ждите сообщения от ведущего в ЛС с вашим предметом!</p>
</div>
<script>
// Функция для получения занятых шкатулок из sessionStorage
function getTakenChests() {
const takenChests = sessionStorage.getItem('takenChests');
return takenChests ? JSON.parse(takenChests) : [];
}
// Функция для сохранения занятых шкатулок в sessionStorage
function saveTakenChests(takenChests) {
sessionStorage.setItem('takenChests', JSON.stringify(takenChests));
}
// Функция для показа уведомления
function showNotification() {
const notification = document.getElementById('copyNotification');
notification.style.opacity = '1';
setTimeout(() => {
notification.style.opacity = '0';
}, 3000);
}
// Функция для копирования текста в буфер обмена
async function copyChestText(chestNumber) {
const text = `«Участвую! Беру шкатулку номер ${chestNumber}.»`;
try {
await navigator.clipboard.writeText(text);
showNotification();
markChestAsTaken(chestNumber);
} catch (err) {
// Fallback для старых браузеров
const textArea = document.createElement('textarea');
textArea.value = text;
textArea.style.position = 'fixed';
textArea.style.left = '-9999px';
document.body.appendChild(textArea);
textArea.focus();
textArea.select();
try {
const successful = document.execCommand('copy');
if (successful) {
showNotification();
markChestAsTaken(chestNumber);
} else {
alert('❌ Не удалось скопировать текст. Попробуйте еще раз.');
}
} catch (fallbackErr) {
alert('❌ Не удалось скопировать текст. Выделите и скопируйте вручную.');
}
document.body.removeChild(textArea);
}
}
// Функция для пометки шкатулки как занятой
function markChestAsTaken(chestNumber) {
const chest = document.querySelector(`.chest-item[data-chest="${chestNumber}"]`);
if (chest) {
const status = chest.querySelector('.chest-status');
const button = chest.querySelector('.chest-button');
chest.classList.add('chest-taken');
status.textContent = 'Занята';
button.textContent = 'Занято';
button.disabled = true;
// Сохраняем в sessionStorage
const takenChests = getTakenChests();
if (!takenChests.includes(chestNumber)) {
takenChests.push(chestNumber);
saveTakenChests(takenChests);
}
}
}
// Функция для инициализации состояния шкатулок при загрузке страницы
function initializeChests() {
const takenChests = getTakenChests();
takenChests.forEach(chestNumber => {
const chest = document.querySelector(`.chest-item[data-chest="${chestNumber}"]`);
if (chest) {
const status = chest.querySelector('.chest-status');
const button = chest.querySelector('.chest-button');
chest.classList.add('chest-taken');
status.textContent = 'Занята';
button.textContent = 'Занято';
button.disabled = true;
}
});
}
// Добавляем обработчики событий для всех кнопок
document.addEventListener('click', function(e) {
if (e.target.classList.contains('chest-button')) {
const chestItem = e.target.closest('.chest-item');
const chestNumber = chestItem.getAttribute('data-chest');
// Проверяем, не занята ли уже шкатулка
if (!chestItem.classList.contains('chest-taken')) {
copyChestText(chestNumber);
}
}
});
// Инициализируем состояние при загрузке страницы
document.addEventListener('DOMContentLoaded', function() {
initializeChests();
});
</script>[/html]






