Bu yazımda Jquery kullanarak hazırladığım bir menü örneğini sizlere tanıtacağım. Birçok sitede kullanılan bu örneği Jquery ile hazırladım ve elementlerin saydamlıklarıyla oynayarak efektif bir menü yapmaya çalıştım. Sonuçta yaptığım örnek Flash veya Silverlight ile hazırlanan örnekleri andırıyor. Ayrıca jquery kodlamalarımız ile oynayarak örneğimizi daha efektif daha görsel hale getirebiliriz. Sonuçta güzel ve kullanılabilir bir menü sisteminin oluştuğunu düşünüyorum. Şimdi kodlarımıza ve örneğimize göz atalım.
Örneği hazırlarken kullandığım html kodlar ve bu kodlara göre yazdığım Jquery kodlarım şöyle:
// Html kodlar
<div id="menu">
<a href="#">Anasayfa</a>
<a href="#">Deneme 1</a>
<a href="#">Deneme 2</a>
<a href="#">Deneme 3</a>
<a href="#">Deneme 4</a>
</div>
// Jquery kodlarımız
$(function() {
$("#menu a").hover(function() {
$(this).stop().animate({ /* stop() kontrolü*/
"opacity": "0.3"
}, 500 /*süre*/);
}, function() {
$(this).animate({
"opacity": "1"
}, 1000 /*süre*/);
});
});
Görüldüğü gibi Jquery içinde yer alan hover fonksiyonu sayesinde istediğimiz elementin veya elementlerin mouseover ve mouseout eventlarını kontrol ediyoruz. Kodlarda ve örnekte en önemli nokta saydamlık değiştirme süreleri ve bunu kontrol eden
stop() fonksiyonu. Bu fonksiyon ile saydamlık değişme süreci başlamış olan bir elementin saydamlık değiştirme olayı süre bitmeden tekrarlandığında bir önceki süreci sonlandırıyoruz ve yeni süreç işliyor. Bu işlem görselliğin daha iyi olmasını ve görselliğin Flash ve Silverlight örneklerine benzemesini sağlıyor. Daha iyi anlamak için bu fonksiyonu örnekten kaldırarak deneyebilirsiniz.
Hazırladığım örneği
buradan görebilir,
buradan da dosyaları indirebilirsiniz.
Örnekte menüleri renklendirmek yerine arka plan için resim kullandım. Bu tür örneklerde genellikle resim tercih ediliyor. Saydamlık değiştirme esnasında renklerin değiştirilmesi pek tercih edilmiyor. Ancak yine de yapılabilir bir yöntem. Ben ise örneğimde bir adet resim kullandım. Ayrıca örneği hem yatay menü hem de dikey menü olarak hazırladım.
İyi Çalışmalar.