Blurry Loading Örneği

Bu yazımızda, HTML, CSS ve JavaScript kullanarak blurry loading örneği oluşturacağız. Bu örnek ile şu konuları pekiştireceğiz:

Yazacağımız kod, bir web sayfasında arka plan resminin yüklenmesi sırasında bulanıklaşma efekti ve yüzde olarak yükleme durumunu gösteren bir yükleme animasyonu sağlar. Projenin işleyişini CodePen üzerinden inceleyebilirsiniz:

See the Pen Blurry Loading by 1kodum (@1kodum) on CodePen.

Bu kod ile aşağıdakileri öğreneceksiniz:

  1. ☑️ Temel HTML kullanımını
  2. ☑️ CSS ile stil vermeyi
  3. ☑️ JavaScript ile işlevsellik kazandırma

⭐ HTML kodu

HTML dosyası: Sayfanın temel yapısını oluşturan HTML etiketlerini içerir. Bir arka plan bölümü (<section class="bg"></section>), yükleme metni (<div class="loading-text">0%</div>) ve JavaScript dosyasına bağlantı içerir.

⭐ CSS kodu

  1. @import: Google Fonts’tan “Roboto” yazı tipini alır ve sayfada kullanılabilir hale getirir.
  2. *: Evrensel seçici, tüm öğelerin box-sizing özelliğini “border-box” olarak ayarlar. Bu, öğelerin boyutlarını daha kolay kontrol etmeye yardımcı olur.
  3. body: Sayfanın ana düzenini ve stilini belirler. Burada, sayfa içeriğinin ortalanması, yazı tipi tanımı ve boyutlarla ilgili stiller ayarlanmıştır.
  4. .bg: Arka plan resmini ayarlar ve stilini belirler. Resmin URL’si, konumu, boyutu ve başlangıçtaki bulanıklık seviyesi (0px) bu kısımda tanımlanır.
  5. .loading-text: Yükleme metni (yüzde değeri) için stil tanımlamalarını içerir. Burada, metnin yazı tipi boyutu ve rengi belirlenir.

⭐ JavaScript kodu

Bu JavaScript kodu, arka plan resminin yüklenmesi sırasında bulanıklaşma efekti ve yüzde olarak yükleme durumunu gösteren bir yükleme animasyonu sağlar.

  1. loadText ve bg sabitlerini tanımlayarak, sınıf adlarına göre HTML öğelerini seçer.
  2. load değişkenini 0’a ayarlayarak yüklemenin başlangıç değerini belirler.
  3. setInterval fonksiyonunu kullanarak, 30 milisaniyelik aralıklarla blurring fonksiyonunu çalıştıran bir zamanlayıcı (interval) başlatır.
  4. blurring fonksiyonu:
    • load değerini 1 artırır.
    • Eğer load değeri 99’dan büyükse, zamanlayıcıyı (interval) durdurur.
    • Yükleme metnini günceller (${load}%).
    • Yükleme metninin opaklığını günceller (scale fonksiyonunu kullanarak).
    • Arka plan resminin bulanıklık seviyesini günceller (scale fonksiyonunu kullanarak).
  5. scale fonksiyonu:
    • Bir sayıyı (num) belirli bir giriş aralığından (in_min ve in_max) belirli bir çıktı aralığına (out_min ve out_max) ölçeklendirmeye yarar.
    • Bu, saydamlık ve bulanıklık efektlerini ayarlamak için kullanılır.

scale fonksiyonu, bir sayının (num) değerini, belirli bir giriş aralığından (in_min ve in_max) belirli bir çıktı aralığına (out_min ve out_max) ölçeklendirmek için kullanılır. Bu, genellikle animasyonlar ve görsel efektler için değerlerin farklı aralıklara dönüştürülmesi gerektiğinde kullanılır.

Fonksiyonun parametreleri şunlardır:

  • num: Ölçeklendirilmek istenen sayı.
  • in_min ve in_max: Giriş aralığının minimum ve maksimum değerleri.
  • out_min ve out_max: Çıktı aralığının minimum ve maksimum değerleri.

Fonksiyon, ölçeklendirme işlemi için aşağıdaki formülü kullanır:

scale fonksiyonu, genellikle animasyonlar ve görsel efektlerde kullanılan değerleri bir aralıktan başka bir aralığa dönüştürmek için kullanılır. Bu, orijinal değeri kullanmak istemediğiniz, ancak orijinal değerin orantılı olarak değişmesini istediğiniz durumlar için kullanışlıdır.

Bizim örneğimizde, scale fonksiyonu iki farklı amaç için kullanılmaktadır:

  1. Yükleme metninin opaklığını ayarlamak: Yükleme sürecinde, yükleme metni yavaşça kaybolur. Bu efekti elde etmek için, yüzde değeri (0 ile 100 arasında) 1 ile 0 arasında bir sayıya dönüştürülerek opaklık değeri olarak kullanılır.
  2. Arka plan resminin bulanıklık seviyesini ayarlamak: Yükleme sürecinde, arka plan resmi giderek daha az bulanık hale gelir. Bu efekti elde etmek için, yüzde değeri (0 ile 100 arasında) 30 ile 0 arasında bir sayıya dönüştürülerek bulanıklık değeri olarak kullanılır.

Bu fonksiyon, animasyonlar ve görsel efektlerde değerleri dönüştürmek için kullanılabilir ve kodun daha esnek ve tekrar kullanılabilir olmasına yardımcı olur.

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu