Kullanıcıların kaydırma işleminde gerçekten istediği tek şey, kaydırmanın sorunsuz olmasıdır. Geçmişte Chrome, kullanıcıların dokunmatik yüzeyleriyle kaydırması veya mobil cihazlarda sayfayı fırlatması gibi bazı durumlarda sorunsuz kaydırma deneyimi sunuyordu. Ancak kullanıcının takılı bir faresi varsa daha titrek ve estetik açıdan çok daha az hoş olan "basamaklı" bir kaydırma davranışı elde eder. Chrome 49'da bu durum değişecek.
Birçok geliştirici, adım adım ilerleyen yerel, giriş odaklı kaydırma davranışının çözümü olarak kitaplıklardan yararlandı. Bu kitaplıkların amacı, kaydırma davranışını daha yumuşak ve göze daha hoş gelen bir şekilde yeniden haritalamaktı. Kullanıcılar bunu uzantıları kullanarak da yapar. Ancak kaydırma özelliğini değiştiren kitaplıkların ve uzantıların dezavantajları da vardır:
- Tuhaf bir vadi hissi. Bu durum iki şekilde kendini gösterir: Birincisi, bir sitede sorunsuz bir kaydırma davranışı olabilir ancak başka bir sitede olmayabilir. Bu nedenle kullanıcı, tutarsızlık nedeniyle kafa karışıklığı yaşayabilir. İkinci olarak, kitaplığın akıcılık fiziği platformunkine uymayabilir. Bu nedenle, hareket düzgün olsa da yanlış veya tuhaf gelebilir.
- Ana mesaj dizisinde anlaşmazlık ve takılma olasılığı artar. Sayfaya eklenen tüm JavaScript'lerde olduğu gibi, CPU yükü de artar. Sayfanın yaptığı diğer işlemlere bağlı olarak bu durum bir felaket olmayabilir ancak ana iş parçacığında uzun süren bir işlem varsa ve kaydırma ana iş parçacığına bağlandıysa sonuç olarak kaydırmaların takılması ve takılmalar yaşanabilir.
- Geliştiriciler için daha fazla bakım, kullanıcıların indirmesi için daha fazla kod. Sorunsuz kaydırma için bir kitaplığa sahip olmak, güncel tutulması ve bakımı yapılması gereken bir şey olacaktır ve sitenin genel sayfa ağırlığını artıracaktır.
Bu dezavantajlar, paralaks efektleri veya kaydırmayla eşlenen diğer animasyonlar gibi kaydırma davranışlarıyla ilgilenen birçok kitaplıkta da geçerlidir. Bu reklamların hepsi sık sık takılmalara neden olur, erişilebilirliği engeller ve genellikle kullanıcı deneyimine zarar verir. Kaydırma, web'in temel etkileşimlerinden biridir ve kitaplıklarla kaydırma işleminde değişiklik yapmak için çok dikkatli olunmalıdır.
Chrome 49'da varsayılan kaydırma davranışı Windows, Linux ve ChromeOS'te değişecek. Eski, basamaklı kaydırma davranışı kullanımdan kaldırılıyor ve kaydırma varsayılan olarak sorunsuz olacak. Kodunuzda herhangi bir değişiklik yapmanız gerekmez. Kullandıysanız sorunsuz kaydırma kitaplıklarını kaldırmak dışında.
Kaydırmayla ilgili diğer özellikler
Ekranı kaydırmayla ilgili olarak geliştirme aşamasında olan ve bahsetmeye değer diğer özellikler de var. Çoğumuz, kaydırmayla ilişkili efektler (ör. paralaks, bir belge parçasına (ör. example.com/#birbölüm) sorunsuz kaydırma) istiyoruz. Daha önce de belirttiğim gibi, günümüzde kullanılan yaklaşımlar genellikle hem geliştiriciler hem de kullanıcılar için zararlı olabilir. Üzerinde çalışılan ve yardımcı olabilecek iki platform standardı vardır: Compositor Worklets ve scroll-behavior
CSS mülkü.
Houdini
Oluşturucu çalışma öğeleri Houdini'nin bir parçasıdır ve henüz tam olarak spesifikasyonu oluşturulup uygulanmamıştır. Bununla birlikte, yamalar yayınlandıkça, derleyicinin ardışık düzeni kapsamında çalıştırılan JavaScript yazmanıza olanak tanıyacak. Bu da genel olarak, paralaks gibi kaydırmayla ilişkili efektlerin mevcut kaydırma konumuyla mükemmel bir şekilde senkronize edileceği anlamına gelir. Kaydırma etkinliklerinin yalnızca ana iş parçacığına düzenli aralıklarla gönderildiği (ve diğer ana iş parçacığı çalışmaları tarafından engellenebildiği) günümüzde kaydırma işleminin ele alınma şekli göz önüne alındığında, bu büyük bir ilerleme olacaktır. Compositor Worklet'ler veya Houdini'nin sunduğu diğer heyecan verici yeni özelliklerle ilgileniyorsanız Surma'nın Houdini'ye giriş yazısını ve Houdini özelliklerini inceleyin ve Houdini posta listesine düşüncelerinizi gönderin.
scroll-behavior
Parçaya dayalı kaydırma söz konusu olduğunda, scroll-behavior
CSS mülkü de yardımcı olabilir. Bu özelliği denemek istiyorsanız Firefox'ta kullanıma sunulduğunu bilmenizi isteriz. "Deneysel Web Platformu özelliklerini etkinleştir" işaretini kullanarak Chrome Canary'da da etkinleştirebilirsiniz. Örneğin, <body>
öğesini scroll-behavior: smooth
olarak ayarlarsanız parça değişiklikleri veya window.scrollTo
tarafından tetiklenen tüm kaydırmalar sorunsuz bir şekilde animasyonlu olur. Bu, aynı şeyi yapmaya çalışan bir kitaplıktaki kodu kullanmak ve sürdürmek zorunda kalmaktan çok daha iyidir. Kaydırma gibi temel bir konuda kullanıcı beklentilerini karşılamamak çok önemlidir. Bu nedenle, bu özellikler değişirken bile aşamalı iyileştirme yaklaşımını benimsemeye ve bu davranışları polyfill yapmaya çalışan tüm kitaplıkları kaldırmaya değer.
Ekranı kaydırın
Chrome 49'dan itibaren kaydırma daha sorunsuz hale geliyor. Ancak bu kadar değil: Houdini ve smooth-scroll
gibi CSS özellikleri aracılığıyla uygulanabilecek daha fazla potansiyel iyileştirme var. Chrome 49'u deneyin, ne düşündüğünüzü bize bildirin ve en önemlisi, kaydırma işlemini mümkün olduğunda tarayıcıya bırakın.