Bu yazımda javascript ile klavye tuşlarını ve projelerimizde tuşlara nasıl hükmedebileceğimizi anlatmaya çalışacağım. Daha önce yaptığım birkaç uygulamada (özeliklle ajax kullanarak hazırladığım
autocomplete uygulamasında) tuşların kullanımına ihtiyaç duymuştum. Ancak tam olarak hakim olamadığımdan bu eksikliği tamamlayamamıştım. Şimdi ise tuşları nasıl kontrol edebileceğimizi öğrenmiş ve uygulamalarımda rahatlıkla kullanabilir durumdayım. Basit olarak nasıl kontrol edeceğimize bakalım.
Öncelikle tuş işlemleri için
keypress,
keyup,
keydown eventlarını kullanabiliriz. Ancak her event farklı tarayıcılarda birbirinden farklı çalışıyor. Mesela karakter tuşlarını kulladığımızda her tarayıcıda her event ile aynı sonucu alırken, yön tuşlarını kullandığımızda her tarayıcıda söylemiş olduğum eventların hepsi çalışmadı. Mesela Internet Explorer ile yön tuşları keypress eventı ile çalışmaz iken, keydown eventı ile çalışmaktadır. Böyle sorunlara dikkat etmeliyiz.
Daha sonra ise hangi tuşun kullanıldığını anlamak için o tuşun keyCode'larını bilmeliyiz. Buna göre basılan tuşun hangi tuş olduğunu anlayıp buna göre işlem yapacağız. Klavyede çok kullanılan tuşların keyCode karşılıklarını
buradan görebilirsiniz.
Tüm bunları yaptıktan sonra kodlamamıza geçip, tuşları görevlendirebiliriz. Bunu daha iyi anlamak için aşağıdaki kodlamaları ve örneği inceleyebiliriz.
<script type="text/javascript">
var x = 200, y = 200;
$(document).keydown(function(event){
//kullanılacak tuşların (yön tuşları) keyCode'ları
var keys = new Array(37, 38, 39, 40);
//tarayıcı farklılığından kaynaklanan keyCode'u elde ediyoruz
var code = (event.which) ? event.which : event.keyCode;
//kontrollerimizi yapıyoruz ve yapılacakları belirliyoruz.
if(code == keys[0]){ x = x - 3; $("#kutu").css("left", x+"px");}
if(code == keys[1]){ y = y - 3; $("#kutu").css("top", y+"px");}
if(code == keys[2]){ x = x + 3; $("#kutu").css("left", x+"px");}
if(code == keys[3]){ y = y + 3; $("#kutu").css("top", y+"px");}
});
</script>
Örnekte sayfa yüklendikten sonra basılan tuşları kontrol ediyoruz. Eğer yön tuşlarından biri kullanılmış ise sayfada yer alan kontrolün pozisyonu ile oynayarak hareket sağlıyoruz. Anlaşılması için oldukça faydalı bir örnek olduğunu düşünüyorum.
Buradan örneği görebilirsiniz.
Söylediğim gibi tuş kontrolünü, yapmış olduğum uygulamalardaki eksikliği gidermek ve kullanışlılığını artırmak için kullanacağım. Bunun dışında daha farklı uygulamalarda yapılabilir.
İyi Çalışmalar!