Web Geliştirme
36 ~45 dk

JavaScript ile Proje: Todo Uygulaması

Todo Uygulaması

<div class="todo-app">
    <h1>Yapılacaklar</h1>
    <div class="input-group">
        <input type="text" id="todoInput" placeholder="Yeni görev...">
        <button id="ekleBtn">Ekle</button>
    </div>
    <ul id="todoList"></ul>
    <p id="sayac">0 görev</p>
</div>
const input = document.getElementById("todoInput");
const ekleBtn = document.getElementById("ekleBtn");
const liste = document.getElementById("todoList");
const sayac = document.getElementById("sayac");

// localStorage'dan yükle
let gorevler = JSON.parse(localStorage.getItem("todos")) || [];

function render() {
    liste.innerHTML = "";
    gorevler.forEach((gorev, i) => {
        const li = document.createElement("li");
        li.className = gorev.tamamlandi ? "tamamlandi" : "";
        li.innerHTML = \`
            <span onclick="toggle(${i})">${gorev.metin}</span>
            <button onclick="sil(${i})">Sil</button>
        \`;
        liste.appendChild(li);
    });
    sayac.textContent = \`${gorevler.filter(g => !g.tamamlandi).length} görev kaldı\`;
    localStorage.setItem("todos", JSON.stringify(gorevler));
}

function ekle() {
    const metin = input.value.trim();
    if (!metin) return;
    gorevler.push({ metin, tamamlandi: false });
    input.value = "";
    render();
}

function sil(i) {
    gorevler.splice(i, 1);
    render();
}

function toggle(i) {
    gorevler[i].tamamlandi = !gorevler[i].tamamlandi;
    render();
}

ekleBtn.addEventListener("click", ekle);
input.addEventListener("keypress", e => { if (e.key === "Enter") ekle(); });

render();
💡 localStorage: Tarayıcıda veri saklama yöntemidir. Sayfa kapatılıp açılsa bile veriler kalır. localStorage.setItem("anahtar", "değer") ile kayıt, localStorage.getItem("anahtar") ile okuma yapılır.
✅ Bu proje şunları kapsar: DOM manipülasyonu, event handling, localStorage, dizi metotları, template literals.

Yorumlar 0

Giriş yapın — Yorumlarınız hemen yayınlansın
Henüz yorum yapılmamış. İlk yorumu siz yapın!