Kaydol

Merhaba Sevgili Floodlar.com Kullanıcısı, Web sitemizde geçirdiğiniz zaman ve bu büyüleyici flood evrenine katılımınız için teşekkür ederiz. Floodların geniş dünyasıyla dolu deneyiminizi daha fazla keşfetmek için, web sitemizi sınırsız olarak kullanabilmeniz adına giriş yapmanız gerekmektedir.

Oturum aç

Merhaba Floodlar.com Kullanıcısı, İlk üç sayfayı tamamladınız, tebrikler! Ancak, floodların devamını görmek ve daha fazla interaktif deneyim yaşamak için giriş yapmanız gerekiyor. Hesabınız yoksa, hızlıca oluşturabilirsiniz. Sınırsız floodlar ve etkileşimler sizleri bekliyor. Giriş yapmayı unutmayın!

Şifremi hatırlamıyorum

Şifreniz mi unuttunuz? Endişelenmeyin! Lütfen kayıtlı e-posta adresinizi giriniz. Size bir bağlantı göndereceğiz ve bu link üzerinden yeni bir şifre oluşturabileceksiniz.

Fil Necati Masonlar Locası Subreddit Adı Nedir? Cevap: ( N31 )

Üzgünüz, flood girme izniniz yok, Flood girmek için giriş yapmalısınız.

Lütfen bu Floodun neden bildirilmesi gerektiğini düşündüğünüzü kısaca açıklayın.

Lütfen bu cevabın neden bildirilmesi gerektiğini kısaca açıklayın.

Lütfen bu kullanıcının neden rapor edilmesi gerektiğini düşündüğünüzü kısaca açıklayın.

Mobil Uygulamada Açın

Güncel Floodlar En sonuncu Nesne

Çoklu seçim bileşeni oluşturma

Çoklu seçim bileşeni oluşturma

Bu yazıda, çoklu seçim bileşeni oluşturmanın bir yolu üzerine düşüncelerimi paylaşmak istiyorum. deneyin gösteri.

Demo

Videoyu tercih ederseniz, işte bu gönderinin bir YouTube versiyonu:

genel bakış #

Kullanıcılara genellikle öğeler sunulur, bazen sürü ve bu durumlarda listeyi azaltmak için bir yol sağlamak iyi bir fikir olabilir. aşırı seçim. Bu blog gönderisi, seçenekleri azaltmanın bir yolu olarak kullanıcı arabirimini filtrelemeyi araştırıyor. Bunu, kullanıcıların seçebileceği veya seçimini kaldırabileceği öğe niteliklerini sunarak, sonuçları azaltarak ve dolayısıyla aşırı seçim yükünü azaltarak yapar.

Etkileşimler #

Amaç, tüm kullanıcılar ve onların değişen giriş türleri için filtre seçenekleri arasında hızlı geçiş sağlamaktır. Bu, uyarlanabilir ve duyarlı bir bileşen çifti ile sağlanacaktır. Masaüstü, klavye ve ekran okuyucular için onay kutularından oluşan geleneksel bir kenar çubuğu ve &LTselect multiple> dokunmatik kullanıcılar için.

Yerleşik çoklu seçimi masaüstü için değil de dokunmatik için kullanma kararı işi kurtarıyor ve iş yaratıyor, ancak tüm yanıt verme deneyimini tek bir bileşende oluşturmaktan daha az kod borcuyla uygun deneyimler sunduğuna inanıyorum.

Dokunmak #

Dokunmatik bileşen yerden tasarruf sağlar ve mobilde kullanıcı etkileşiminin doğruluğuna yardımcı olur. Onay kutularından oluşan bir kenar çubuğunun tamamını daraltarak yerden tasarruf sağlar. &LTselect> yerleşik bindirmeli dokunma deneyimi. Sistem tarafından sağlanan geniş bir dokunma bindirme deneyimini göstererek giriş doğruluğuna yardımcı olur.

Klavye ve gamepad #

Aşağıda nasıl kullanılacağına dair bir gösteri &LTselect multiple> klavyeden.

Bu yerleşik çoklu seçim, biçimlendirilemez ve yalnızca çok fazla seçenek sunmaya uygun olmayan kompakt bir düzende sunulur. O küçük kutudaki seçeneklerin genişliğini nasıl gerçekten göremediğinizi görüyor musunuz? Boyutunu değiştirebilseniz de, yine de onay kutularının kenar çubuğu kadar kullanışlı değildir.

işaretleme #

Her iki bileşen de aynı pakette yer alacaktır. &LTform> eleman. Bu formun sonuçları, ister onay kutuları ister çoklu seçim olsun, gözlemlenecek ve ızgarayı filtrelemek için kullanılacak, ancak bir sunucuya da gönderilebilir.

form>

&LT/form>

Onay kutuları bileşeni #

Onay kutusu grupları bir &LTfieldset> eleman ve verilen &LTlegend>. HTML bu şekilde yapılandırıldığında, ekran okuyucular ve FormData öğelerin ilişkisini otomatik olarak anlayacaktır.

form>
fieldset>
legend>New&LT/legend>
… checkboxes …
&LT/fieldset>
&LT/form>

Gruplandırma yerindeyken, bir &LTlabel> Ve &LTinput type="checkbox"> filtrelerin her biri için. benimkini sarmayı seçtim &LTdiv> yani CSS gap özelliği, bunları eşit şekilde aralayabilir ve etiketler çok satırlı olduğunda hizalamayı koruyabilir.

form>
fieldset>
legend>New&LT/legend>
div>
input type="checkbox" id="last 30 days" name="new" value="last 30 days">
label for="last 30 days">Last 30 Days&LT/label>
&LT/div>
div>
input type="checkbox" id="last 6 months" name="new" value="last 6 months">
label for="last 6 months">Last 6 Months&LT/label>
&LT/div>
&LT/fieldset>
&LT/form>

&LTselect multiple> bileşen #

Nadiren kullanılan bir özellik &LTselect> eleman multiple. Öznitelik bir ile kullanıldığında &LTselect> öğe, kullanıcının listeden birçok öğe seçmesine izin verilir. Bu, etkileşimi bir radyo listesinden bir onay kutusu listesine değiştirmek gibidir.

form>
select multiple="true" title="Filter results by category">

&LT/select>
&LT/form>

içinde grupları etiketlemek ve oluşturmak için &LTselect>kullan &LToptgroup> eleman ve ona bir ver label özellik ve değer. Bu öğe ve öznitelik değeri şuna benzer: &LTfieldset> Ve &LTlegend> elementler.

form>
select multiple="true" title="Filter results by category">
optgroup label="New">

&LT/optgroup>
&LT/select>
&LT/form>

şimdi ekle &LToption> Filtre için elemanlar.

form>
select multiple="true" title="Filter results by category">
optgroup label="New">
option value="last 30 days">Last 30 Days&LT/option>
option value="last 6 months">Last 6 Months&LT/option>
&LT/optgroup>
&LT/select>
&LT/form>

Yardımcı teknolojiyi bilgilendirmek için sayaçlarla izleme girişi #

bu statü rolü Bu kullanıcı deneyiminde, ekran okuyucular ve diğer yardımcı teknolojiler için filtre çetelesini izlemek ve sürdürmek için teknik kullanılır. YouTube videosu özelliği gösterir. Entegrasyon, HTML ve öznitelik ile başlar role="status".

div role="status" class="sr-only" id="applied-filters">&LT/div>

Bu öğe, içerikte yapılan değişiklikleri yüksek sesle okuyacaktır. İçeriği ile güncelleyebiliriz CSS sayaçları kullanıcılar onay kutuları ile etkileşime girdikçe. Bunu yapmak için önce girişlerin ve durum öğesinin üst öğesinde adı olan bir sayaç oluşturmamız gerekir.

aside {
counter-reset: filters;
}

Varsayılan olarak, sayım 0ki bu harika, hiçbir şey :checked bu tasarımda varsayılan olarak.

Ardından, yeni oluşturduğumuz sayacı artırmak için, &LTaside> olan eleman :checked. Kullanıcı girişlerin durumunu değiştirdikçe, filters sayaç artacaktır.

aside :checked {
counter-increment: filters;
}

CSS artık onay kutusu kullanıcı arabiriminin genel çetelesinin farkındadır ve durum rolü öğesi boştur ve değerleri beklemektedir. CSS, çeteleyi bellekte tuttuğundan, counter() işlev, sözde öğe içeriklerinden değere erişmeye izin verir:

aside #applied-filters::before {
content: counter(filters) " filters ";
}

Durum rolü öğesinin HTML’si artık bir ekran okuyucuya “2 filtre” duyurusu yapacak. Bu iyi bir başlangıç, ancak filtrelerin güncellediği sonuçların çetelesini paylaşmak gibi daha iyisini yapabiliriz. Sayaçların yapabileceklerinin dışında olduğu için bu işi JavaScript’ten yapacağız.

İç içe geçmiş heyecan #

Sayaç algoritması harika hissettirdi CSS yerleştirme-1, tüm mantığı tek bir bloğa koyabildiğim için. Okuma ve güncelleme için taşınabilir ve merkezi bir his verir.

aside {
counter-reset: filters;

& :checked {
counter-increment: filters;
}

& #applied-filters::before {
content: counter(filters) " filters ";
}
}

İlgili Mesajlar

Yorum eklemek için giriş yapmalısınız.