CodeBlanks Logo Icon CodeBlanks

Mouse olayları

JavaScript kursu · Orta seviye · Ders 33/134

mouseover, mouseout ve mousemove ile fare hareketlerini izlemeyi öğrenirsin.

mouseover ve mouseout

Fare bir öğenin üzerine gelince mouseover, öğeden çıkınca mouseout olayı tetiklenir. Bu ikisi, fareyle üzerine gelme efektleri için temel araçtır.

const card = document.querySelector('.card');
card.addEventListener('mouseover', () => {
  card.classList.add('hover');
});
card.addEventListener('mouseout', () => {
  card.classList.remove('hover');
});

İki dinleyiciyi ayrı ayrı eklersin: biri girince sınıf ekler, diğeri çıkınca kaldırır. Aynı öğeye birden fazla addEventListener çağrısı yapabilirsin; hepsi çalışır.

mousemove ve koordinatlar

Fare bir öğe üzerinde hareket ederken mousemove olayı çok sık tetiklenir. Bu olayın event.clientX ve event.clientY özellikleri farenin görünüm alanındaki konumunu verir.

const area = document.querySelector('.area');
area.addEventListener('mousemove', (event) => {
  console.log(event.clientX, event.clientY);
});

Koordinatlar pencerenin sol üst köşesinden başlar. Çok sık tetiklendiği için ağır işlemlerden kaçınılır; ama basit konum takibi için idealdir.

Uygulama Fare girince ve çıkınca sınıf değiştir

document.querySelector('.card') ile card öğesini seç. mouseover olayına bir ok fonksiyonu handler ekle ve içinde classList.add('hover') çağrısı yap; mouseout olayına da bir handler ekle ve içinde classList.remove('hover') çağrısı yap.

Örnek çözümü göster
const card = document.querySelector('.card');
card.addEventListener('mouseover', () => {
  card.classList.add('hover');
});
card.addEventListener('mouseout', () => {
  card.classList.remove('hover');
});

Kendini test et

  1. Fare bir öğenin üzerine gelince hangi olay tetiklenir?

    • mouseout
    • mouseover
    • mousemove
    • mousedown
    Cevabı göster

    mouseover — Doğru! mouseover, fare öğenin üzerine gelince tetiklenir.

  2. mouseover dinleyicisini tamamla

    card.addEventListener('____', () => {
      card.classList.add('hover');
    });
    Cevabı göster
    card.addEventListener('mouseover', () => {
      card.classList.add('hover');
    });
  3. Fare olaylarını eşleştir

    mouseover
    Fare girince
    mouseout
    Fare çıkınca
    mousemove
    Fare hareket edince
    clientX
    Yatay koordinat

Orta seviye bölümündeki tüm dersler