Bloğa geri dön

Saf, Vanilla JavaScript ile Sürükle ve Bırak Öğeleri Oluşturma

Saf, Vanilla JavaScript ile Sürükle ve Bırak Öğeleri Oluşturma

JavaScript, 24'ten fazla framework ve yaklaşık 84 kütüphane ile güçlendirilmiş en popüler programlama dillerinden biridir. Tüm tarayıcılar tarafından yerleşik olarak desteklenen tek programlama dilidir. Ayrıca bu dil, dinamik yazımı destekler ve işleme (rendering) ile animasyon için mükemmel bir seçimdir. Ön uçta etkileşimli davranışlar eklemek, arka ucu kontrol etmek, web ve mobil uygulamalar oluşturmak ve daha fazlası için JavaScript'ten yararlanabilirsiniz. Herhangi bir web sitesine efekt ekleme ve onu özelleştirilebilir hale getirme seçeneği, bu dili dünya genelindeki geliştiriciler arasında favori yapmaktadır.

Bu kılavuzda, saf Vanilla JavaScript kullanarak sürükle ve bırak öğeleri oluşturma adımlarında size rehberlik edeceğiz. Ek olarak, bir adım daha ileri gideceğiz ve HTML Drag and Drop API olay işleyicilerini kullanarak bir “Sabah Planlayıcı” uygulaması oluşturacağız.

Gereksinimler

Bu eğitimi takip edebilmek için şunlara sahip olmalısınız:

  • Temel JavaScript bilgisi.
  • Şu konularda bilgi sahibi olmak HTML ve CSS büyük bir avantaj sağlayacaktır.

Adım 1: Yeni Bir Proje Oluşturun

İki alt öğeye sahip bir kapsayıcı oluşturarak başlayın. İlk alt öğeyi sürüklemek için, ikinci alt öğeyi ise sürüklenen öğeleri depolamak için kullanacağız.

Not: Bu eğitimde, kapsayıcıları sürüklenen tüm öğeleri tutacak bir depo olarak ele alacağız. Basit bir ifadeyle, ilk alt öğeden sürüklenen tüm öğeler ikinci alt öğeye bırakılacaktır.

Ardından, dizini cd komutunu kullanarak drag-and-drop-demo  klasörüne değiştirin:

Adım 2: Başlangıç Kurulumu

Bu eğitimde HTML, CSS ve JavaScript dosyaları oluşturup bunları birbirine bağlayacağız. İlk olarak, dosyaları sırasıyla index.html, styles.css, ve scripts.js dosyaları olarak adlandırın.

Ardından, başlığı “My Morning Planner” olarak index.html dosyasına ekleyin:

Ardından, CSS'i bağlayın ve JavaScript'i HTML'e ekleyin:

Şimdi, ilk kapsayıcıyı oluşturacağız ve sürükleyip bırakmak istediğimiz öğeyi ekleyeceğiz. Özniteliği draggable="true", olarak ayarladığınızdan emin olun ve sürüklemek veya bırakmak istediğiniz öğelerin listesini ekleyin.

Ardından, <body> etiketlerinin arasına aşağıdaki kod satırlarını ekleyin:

Lütfen index.html dosyasını kaydedip kapatın. Ardından, tarayıcınızda index.html dosyasını açmayı deneyin; bir sayfanın açıldığını göreceksiniz:

Ardından, CSS kullanarak index.html dosyamızı şekillendirelim ve sunulabilir görünmesini sağlayalım.

Adım 3: CSS kullanarak Şekillendirme

Ardından, index.html dosyamıza eklediğimiz tüm öğelere stiller ekleyin:

Tarayıcınızda index.html dosyasını açmayı deneyin ve çıktıyı görün:

Creating Drag and Drop Elements with Pure, Vanilla JavaScript 1

Yapılandırmayı tamamlamış ve stiller eklemiş olsak da, öğeler hala statiktir. Bu, onlara dinamik özellikler ekleyene kadar öğeleri hareket ettiremeyeceğimiz veya kaydıramayacağımız anlamına gelir. Bir sonraki adımda, JavaScript ve dinamik davranışları dahil edeceğiz.

Adım 4: JavaScript ile Tanışma

Bu adımda JavaScript'i tanıtacağız ve tüm sürükleme öğelerini işlevsel hale getireceğiz. JS dosyasında ihtiyacımız olacak öğeleri ayarlayalım. Sırasıyla öğeleri sürükleyip bırakmak için draggable ve containers öğelerini tanımlayalım.

Şu iki satır kodu scripts.js dosyasına ekleyin:

Ardından, tüm olay dinleyicilerini ayarlayın. Sınıf listesine dragstart öğesini ilk olay dinleyicisi olarak ekleyerek add işlemini gerçekleştirin. Benzer şekilde, sınıf listesinden dragend öğesini ikinci olay dinleyicisi olarak ekleyerek remove işlemini gerçekleştirin.

Aşağıdaki EventListeners öğelerini scripts.js dosyanıza ekleyin:

Ardından, öğelerimizi üzerinde gezdirmek ve hareket ettirmek için dragover EventListener olay dinleyicisini ekleyin. Mevcut draggable öğesini querySelector kullanarak ayarlayın ve ardından sürüklenebilir öğeyi mevcut kapsayıcıya ekleyin:

Varsayılan olarak, bir öğenin içine bırakma devre dışıdır. Bunu etkinleştirmek için e.preventDefault kullanın:

Ardından, fare konumunu belirlemek için bir öğe oluşturun. İki parametre alacak bir getDragAfterElement fonksiyonu oluşturarak başlayın. İlki bir container olacak ve ikinci parametre olan y farenin dikey konumuyla ilgilenecektir. Şimdi, sürüklenebilir öğelerimizi almak için querySelectorAll fonksiyonunu kullanın. Kapsayıcı içindeki tüm sürüklenebilir öğeler için bir draggableElements tanımlayın:

Ardından, sürüklenebilir öğeler listesi arasında döngü kuracak ve ayrıca fare imlecinden sonraki tek öğeyi belirleyecek bir reduce fonksiyonu çağırın. Ardından, ilk öğeyi return ifadesiyle reduce fonksiyonunu döndürün; burada ilk öğeyi closest ve ikinciyi bir child olarak ekleyin. Ayrıca, offset değerini eşitleyin ve koşulları ekleyin.

Aşağıdaki kod satırlarını scripts.js dosyasına ekleyin:

Son bölümde, koşulları belirleyeceğiz ve AfterElements değerini kontrol edeceğiz. AfterElements değerini if-else koşullarını kullanarak kontrol edin ve eğer null olarak ayarlanmışsa, appendChild kullanarak listenin sonuna bir alt öğe ekleyin. Aksi takdirde, draggable ve afterElement öğelerini insertBefore fonksiyonuna parametre olarak ekleyin.

Bunu scripts.js dosyasına ekleyin:

Artık gerekli kurulumu tamamladık. Tarayıcınızı açın ve index.html dosyasını tarayıcınızda çalıştırın. “My Morning Scheduler” sayfasını sürükle ve bırak seçenekleriyle göreceksiniz. Ortadaki beyaz çizgi, halihazırda yapılmış olan görevler ile henüz yapılmamış olanları ayırt etmek için bir köprü görevi görür:

Sonuç

Sürükle ve Bırak, günümüz web sitelerinde kullanmak için mükemmel bir seçenektir. Bu kılavuzda, eğitimi yeni başlayanlar için kolaylaştırmak amacıyla birkaç olay işleyici kullandık. Toplamda sekiz olay işleyici bulunmaktadır ve ilerledikçe bunları kullanmanızı öneririz. Bu eğitimde kullanılan fonksiyonları ve kodları rahatça kullanmaya başladıktan sonra, jQuery gibi JavaScript konularına daha derinlemesine dalabilir ve keşfetmeye başlayabilirsiniz. Ayrıca, JavaScript tarih ve saat özelliklerini kullanarak bir Yapılacaklar (To-Do) uygulaması, haftalık ilerleme takipçisi ve yeni öğrendiğiniz kavramları kullanan diğer uygulamaları geliştirmeyi deneyebilirsiniz.

JavaScript ve web geliştirme konularında daha fazla bilgi edinmek için blogumuzdaki şu kaynaklara göz atın::

Keyifli Kodlamalar!

author

Shreyas Patil

Yazar · CloudSigma

Preslav Dobrev, CloudSigma'da Kreatif Tasarımcı olarak görev yapmakta olup geleneksel ve yenilikçi pazarlama kanallarını kullanarak tutarlı bir kurumsal kimlik oluşturmaya odaklanmaktadır. Sanatsal vizyonu stratejik pazarlamayla harmanlayarak etkili marka anlatıları oluşturma konusunda oldukça yeteneklidir.

Yorumlar

Henüz yorum yapılmamış. İlk siz olun.