Nu är det så att jag har fastnat på användarnamn. 😧 Fick tips från Gud att använda detta forum (trots att mina kusiner använder detta forum.) Här är min kod:
<!DOCTYPE html> <html lang="sv"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Bulletin Board</title> <!-- Lägg till Google Fonts för snyggare text --> <link href="https://fonts.googleapis.com/css2?family=Open+Sans&display=swap" rel="stylesheet" /> <style> /* Bulletin Board sektion */ #bulletinBoard { display: block; /* Ändra till 'none' för att dölja initialt */ padding: 30px 20px; max-width: 500px; margin: auto; margin-top: 50px; background-color: #ffffff; border-radius: 16px; box-shadow: 0 4px 20px rgba(0,0,0,0.1); font-family: "Open Sans", sans-serif; transition: box-shadow 0.3s, transform 0.3s; } #bulletinBoard:hover { box-shadow: 0 8px 24px rgba(0,0,0,0.15); transform: translateY(-2px); } h2 { text-align: center; color: #333; margin-bottom: 20px; } #posts { max-height: 300px; overflow-y: auto; padding-right: 10px; margin-bottom: 20px; } .post { background-color: #fefefe; padding: 15px; margin-bottom: 12px; border-radius: 12px; box-shadow: 0 2px 8px rgba(0,0,0,0.05); transition: background-color 0.2s, box-shadow 0.2s; } .post:hover { background-color: #f0f8ff; box-shadow: 0 4px 12px rgba(0,0,0,0.1); } .post-header { font-weight: 700; font-size: 1.1em; margin-bottom: 6px; color: #222; } .post-meta { font-size: 0.8em; color: #555; margin-bottom: 10px; } #postForm { display: flex; flex-direction: column; gap: 10px; } #nameInput, #newPost { padding: 12px; border-radius: 8px; border: 1px solid #ccc; font-size: 1em; transition: border-color 0.2s, box-shadow 0.2s; } #nameInput:focus, #newPost:focus { border-color: #007bff; outline: none; box-shadow: 0 0 8px rgba(0,123,255,0.2); } #newPost { resize: vertical; /* Gör att textarea kan resize:as vertikalt */ min-height: 80px; /* Minsta höjd för textarea */ } .buttons { display: flex; gap: 10px; } button { padding: 12px 20px; border: none; border-radius: 8px; background-color: #007bff; color: #fff; font-weight: 600; cursor: pointer; transition: background-color 0.3s, transform 0.2s; } button:hover { background-color: #0056b3; transform: translateY(-1px); } button:nth-of-type(2) { background-color: #dc3545; /* Tillbaka-knappen i rött */ } button:nth-of-type(2):hover { background-color: #a71d2a; } </style> </head> <body> <!-- Bulletin Board Sektion --> <div id="bulletinBoard"> <h2>Bulletin Board</h2> <div id="posts"> <!-- Här kommer inläggen att visas --> </div> <form id="postForm"> <input type="text" id="nameInput" placeholder="Ditt namn..." required /> <textarea id="newPost" placeholder="Skriv ett nytt inlägg..." required></textarea> <div class="buttons"> <button type="submit">Lägg till</button> <button type="button" onclick="toggleBulletin()">Tillbaka</button> </div> </form> </div> <script> // Funktion för att visa/hide bulletin board function toggleBulletin() { const bulletin = document.getElementById('bulletinBoard'); if (bulletin.style.display === 'none') { bulletin.style.display = 'block'; } else { bulletin.style.display = 'none'; } } // Funktion för att lägga till ett inlägg function addPost(name, text) { const postsContainer = document.getElementById('posts'); const postDiv = document.createElement('div'); postDiv.className = 'post'; const header = document.createElement('div'); header.className = 'post-header'; header.textContent = 'Nytt inlägg'; const meta = document.createElement('div'); meta.className = 'post-meta'; meta.textContent = `Skrivet av: ${name} - ${new Date().toLocaleString('sv-SE')}`; const content = document.createElement('div'); content.textContent = text; postDiv.appendChild(header); postDiv.appendChild(meta); postDiv.appendChild(content); // Lägg till högst upp postsContainer.insertBefore(postDiv, postsContainer.firstChild); } // Spara alla inlägg i localStorage function savePosts() { const postsContainer = document.getElementById('posts'); const posts = Array.from(postsContainer.children).map(postDiv => { const metaText = postDiv.querySelector('.post-meta').textContent; const contentText = postDiv.querySelector('div:nth-child(3)').textContent; const nameMatch = metaText.match(/Skrivet av: (.+?) -/); const name = nameMatch ? nameMatch[1] : 'Anonym'; return { name: name, text: contentText }; }); localStorage.setItem('posts', JSON.stringify(posts)); } // Ladda inlägg från localStorage function loadPosts() { const postsContainer = document.getElementById('posts'); postsContainer.innerHTML = ''; const storedPosts = localStorage.getItem('posts'); if (storedPosts) { const postsArray = JSON.parse(storedPosts); postsArray.forEach(post => { addPost(post.name, post.text); }); } } // När sidan laddas window.addEventListener('DOMContentLoaded', () => { loadPosts(); }); // Hantera formulär document.getElementById('postForm').addEventListener('submit', function(e) { e.preventDefault(); const nameInput = document.getElementById('nameInput'); const postTextarea = document.getElementById('newPost'); const name = nameInput.value.trim() || 'Anonym'; const text = postTextarea.value.trim(); if (text !== '') { addPost(name, text); savePosts(); postTextarea.value = ''; } }); </script> </body> </html>
Detta är till en Bulletin Board-
Tror det ska inte vara några problem. Det går inte att förstöra en Bulletin Board. ;-D