Form alanları genelde kullanıcıların en çok sıkıldıkları alanlardır. Bu sıkıntıyı gidermek için kod yazarları çeşitli yöntemler geliştirmektedir. CSS ve ajax tabanlı çözümlerle gayet güzel sonuçlar çıkmaktadır. Biz burada fazla derine inmeden kullanıcının form alanlarına odaklandığında form alanına farklılıklar vererek daha belirgin hale getirmeyi göreceğiz.
İlk örneğimiz. Bir arama metin kutusuna başlangıç değeri olarak açıklayaıcı bir bilgi gireceğiz ve kullanıcı bu alana odaklandığında(onfocus) metni sileceğiz.
- <p>
- Ad Soyad<br />
- <input type=”text” id=”ara” name=”ara” value=”Ara” onfocus=”if(this.value==’Ara’){this.value=”};” onblur=”if(this.value==”){this.value=’Ara’};” />
- </p>
Örneği görmek için tıklayınız.
metin kutusunun onfocus olayına eğer değer bizim girdiğimiz değer ise boşaltmasını söylüyoruz. Tabi birde kullanıcının bu metin kutusu dışına çıktığında bu alanı eski hali getirmek içinde onblur olayını kullanıyoruz. Burada dikkat edilmesi gereken nokta metin kutusuna atadğımız bağlangıç değeri(value=”Ara”) ile sorgudaki alanın(if(this.value==”)) bir biri ile aynı olmasıdır.
İkinci örneğimizde bu efekte zemin rengi özelliğinide katarak daha güzel bir etki vereceğiz.
- <p>Ad Soyad<br />
- <input type=”text” id=”ara” name=”ara” value=”Ara” onfocus=”if(this.value==’Ara’){this.value=”; this.style.backgroundColor=’#efefef’};” onblur=”if(this.value==”){this.value=’Ara’; this.style.backgroundColor=’#ffffff’};” />
- </p>
Örneği görmek için tıklayınız.
Burada dikkat edilecek konu onblur durumunda zemin rengini ilk haline döndürmektir.
Form alanları genelde örnekte verdiğimiz gibi tek metin kutusundan oluşmaz. Genelde bir çok metin kutusu, işaret kutusu, açılır menü gibi elemanların alt alta sıralanmasından oluşur. son örneğimizde bu elementler arasında kullanıcının odaklandığı elementini kapsayan alanın zemin rengini değiştirerek dikkati bu alana çekeceğiz.
- .odaklan{
- background-color: #FFFFE0;
- padding:10px 5px;
- border:1px solid #CCCCCC;
- }
- .normal{
- background-color:#FFFFFF;
- padding:10px 5px;
- }
- …..
- <p class=”normal”>Ad Soyad<br />
- <input type=”text” id=”ara” name=”ara” value=”Ara” onfocus=”if(this.value==’Ara’){this.value=”; this.style.backgroundColor=’#efefef’; this.parentNode.className=’odaklan’};” onblur=”if(this.value==”){this.value=’Ara’; this.style.backgroundColor=’#ffffff’; this.parentNode.className=’normal’};” />
- </p>
Örneği görmek için tıklayınız.
Burada form alanına ve kapsayan paragrafa farklı renk atayarak daha fazla dikkat cekici lanlar oluşturduk.
Not: Bu örnekler FF1, IE5, Opera7.5 ve Safari3.0/Win çalışmaktadır.
Bu işlemleri aslında biz CSS ilede yapabiliriz. :focus özelliği bu işlevi görür, ancak bu özellikleri IE desteklemediği için bu özelliği kullanamıyoruz.
- input:focus
- {
- background-color: #FFFFE0;
- color: white;
- }
Bu kodu IE’nin desteklemesi için bir javascript kodu eklememiz gerekiyor.
- sfFocus = function() {
- var sfEls = document.getElementsByTagName(”INPUT”);
- for (var i=0; i<sfEls.length; i++) {
- sfEls[i].onfocus=function() {
- this.className+=” sffocus”;
- }
- sfEls[i].onblur=function() {
- this.className=this.className.replace(new RegExp(” sffocus\\b”), “”);
- }
- }
- }
- if (window.attachEvent) window.attachEvent(”onload”, sfFocus);
kaynak: www.fatihhayrioglu.com
1 Yorum Yapılmış to “Form alanlarına odaklanma”
Yorum Yazın
Yorum yapmak için giriş yapmalısınız.
Aralık 25th, 2007 at 21:48
Complimenti.. Sei entrato nel piu’ completo Portale sulle Medicine Alternative, Biologico Naturali e Spirituali - Leggi, Studia, Pratica e starai in Perfetta Salute, senza Vendita Cialis, Viagra Generico on line; Comprare Tad
alafil, Sildenafil in online farmacia Muladhara-SPE Salus Per Exercitatione. Impotenza Impotenza. X-man May 25, 2007, 22:14 . e tantissimi altri chiedi info im potenza scelti a seconda delle problematiche della persona in questione impotenza che occorre Sito web dell’Universita degli Studi di Pavia, Facolta di Farmacia Universita degli Studi di Pavia Facolta di Farmacia. Benvenuti nel nuovo sito della Facolta di Farmacia dove acquistare cialis on line