28.07.2022
Web sitelerde mobil ve tablet kullanımı arttıkça dokunmatik özelliği de UI/UX olarak öne çıkmaya başladı. Sadece slider’lar sürüklenebilir yerler olmaktan çıktı ve sayfanın herhangi bir yerinde hareketliliğe göre efekt kullanımı gerekli hale geldi.
Normalde CSS’de Bootstrap benzeri kütüphaneler sayesinde slider veya galeriler estetik kayma efektleri ile çalışıyorlar. Sayfadaki herhangi bir div’e de CSS Scroll Snap ile hem yatay hem dikey olarak kaydırmak ve bunu estetik şekilde tasarlamak mümkün.
Benim yaptığım örnekte ilk adım olarak, kaymasını istediğimiz alanın kapsayıcısına display: flex ve overflow-x: auto tanımlamaları yapılıyor. İçeriklerin yatay veya dikey olarak hizalanıp, overflow: auto ile kapsayıcısının dışına taşması gerekiyor.
<div class="section"> <div class="sub_div div_1">Item 1</div> <div class="sub_div div_2">Item 2</div> <div class="sub_div div_3">Item 3</div> <div class="sub_div div_4">Item 4</div> <div class="sub_div div_5">Item 5</div> <div class="sub_div div_6">Item 6</div> <div class="sub_div div_7">Item 7</div> <div class="sub_div div_8">Item 8</div> <div class="sub_div div_9">Item 9</div> <div class="sub_div div_10">Item 10</div> </div>
.section {
display: flex;
overflow-x: auto;
}
Bu şekilde layout oluştu.
Ancak kutuların kayışı hala düzgün olmayacak. Yani bir slider’da olduğu gibi durması gerektiği yerde durmayacak ve kayabildiği kadar yere kayacak. Bunun için kapsayıcı olan section’a ve altındaki div’lere iki yeni özellik eklemek gerekiyor:
Kapsayıcıya: scroll-snap-type: x mandatory;
Altındaki div’lere: scroll-snap-align: start;
Scroll-snap-type ile kapsayıcının içindekileri sadece x veya y ekseninde kayacağı belirtildi. Örneğin diklemesine kayan bir yer olsun isteseydik scroll-snap-type değerini ‘y’ olarak belirleyecektik. Mandatory özelliği de bunun, ne olursa olsun her seferinde gerçekleşeceği anlamına geliyor.
Scroll-snap-align ile de, sola hizalı olacak şekilde en yakın div’in en az %50‘si hala alanın içerisindeyse, onu zaman otomatik hizalama yapacak şekilde ayarlandı.
Yukarıdaki örnekte align: start olarak belirlenmiş ve sola sıfırlanmıştı. Benzer şekilde center veya end de kullanılabilir. Böyle olunca kayan alan o hizaya göre kendini otomatikman durduracak.
scroll-snap-align: end;
scroll-snap-align: center;
Daha düzgün bir görünüm için hem kapsayıcıya hem de içindeki div’lere padding ve margin verilebilir. Bunun yanında, tıpkı flexbox’da flex: gap kullanır gibi, scroll-snap’de de scroll-padding ve scroll-margin kullanılabilir. Çalıştığınız kodun daha temiz ve anlaşılır olması için tercih edilebilir.
Scroll-snap’in y ekseninde akacak şekilde düzenleyerek mobilde kullanıma da uygun bir tasarım oluşturabilirsiniz. Aşağıdaki örnekte önce kapsayıcıya height: 100vh vererek ekranı tamamen kaplaması sağlandı. Flex-direction: row özelliği ile içindeki tüm div’ler dikey olarak hizalanmış oldu. Scroll özelliğinin dikey olacağını belirtmek için scroll-snap-type: y mandatory dendi. Div’lere height: 70vh verdikten sonra scroll-snap-align: center olarak belirtildi. Böylece aktif olan div ortalanmış oldu.
.section {
height: 100vh;
flex-direction: row;
overflow-y: auto;
scroll-snap-type: y mandatory;
}
.sub_div {
height: 70vh;
scroll-snap-align: center;
}
Scroll-snap’in sevdiğim yanı sadece görsel odaklı düşünmek yerine card, metin, ikon hatta section’ların altındaki büyük alanlarda da kullanılabilir olması. Bu şekilde sayfa çok daha dinamik bir hale gelebilir, çok vakit harcamadan mobil/tablet kullanımına uygun olarak yazılabilir.
Farklı örneklerle scroll-snap kullanımını çeşitlendirmek mümkün. Benim verdiğim örnekler çok temel hizalama ve yön verme ile ilgili efektler. Bu özelliklerle birlikte Javascript’deki çeşitli api veya event’ler kullanılarak aktif alana yeni özellikler eklenebilir.
Perfist Blog
Benzer Yazılar
Dijital pazarlama dünyasında, kullanıcıların oluşturduğu içerikler (User Generated Content – UGC) önemini giderek artırıyor. UGC, markaların ve ürünlerin tanıtımında kullanıcıların kendi deneyimlerini, görüşlerini ve yaratıcılıklarını paylaştıkları videoları içerir. Peki, UGC videoları dijital pazarlama stratejilerinde neden bu kadar önemlidir? 1. Güvenilirlik ve Samimiyet Kullanıcıların ürettiği içerikler, tüketiciler için markalardan gelen tanıtımlara göre daha güvenilir bir algı […]
Devamını Oku
Performans PazarlamasıUniversal Analytics’ten Google Analytics 4’e geçişle beraber bazı çözülmesi gereken sorunlarınız olabilir. Bu sorunlardan biri de ‘unassigned’ trafik. Raporlarda “unassigned” / (not set) olarak görünen boyutlar, analiz ve optimize etme olanağınızı olumsuz etkileyen bir faktör olarak karşımıza çıkıyor. GA4 raporlarınızdaki “unassigned” trafiğin nedenlerini ve nasıl azaltalabileceği gibi konulara değineceğiz. Bu sayede web sitenizin ziyaretçi trafik […]
Devamını Oku
Beginner Level Web/App AnalitiğiGoogle Cloud’un BigQuery veri ambarı Facebook Reklamlarından otomatik veri aktarımını desteklediğini bu yılın başında açıklamıştı. Önizleme aşamasında olan bu özellik, veri yükleme işlerinin planlanmasına olanak tanıyarak analiz ve içgörüler geliştirmek için alternatif bir yol sunuyor. Bu entegrasyon sayesinde üçüncü taraf araçlara veya manuel kod çalışmasına olan ihtiyacınız ortadan kalkıyor. Bu entegrasyon özel raporların desteklenmediği sabit […]
Devamını Oku
Mid Level Web/App AnalitiğiGoogle Analytics 4’ün app ve web verilerini birleştiriyor olmasıyla uygulama analizleri daha kolay takip edilebilir hâle geldi. Firebase Analytics, iOS veya Android uygulamanızın takibini GA4 ile kolaylıkla yapabilmenize olanak tanıyor. Mobil uygulama takibi için birçok farklı tool olmasıyla beraber aynı mülk içinde hem web hem de app verilerini görebiliyor olmak daha doğru analizler ve stratejiler […]
Devamını Oku
Mid Level Web/App Analitiği