jQuery ile Açılır Kapanır İletişim Formu Alanı Yapımı

Javascript | | 2 Ocak 2010

iletisimpanelon Yeniden Merhabalar. Yılın ilk günündeki bu ilk gönderimiz vesilesiyle hepinizin yeni yılını kutlar, yeni yılda beklediğiniz güzel şeylerin gerçekleşmesini dilerim.

Günümüz web trendlerinin başında kullanıcılarınızla etkileşim ve iletişime geçmek geliyor. Bu gönderimizde sayfamıza jQuery yardımıyla bir iletişim form alanı koyacak ve ziyaretçinin tetiklemesiyle bu alanı gösterip geri kapatabilecek bir uygulama yapacağız. Dilerseniz hemen uygulamamıza geçelim.

UYGULAMA ÖNİZLEME UYGULAMAYI İNDİR (6kb)

1. ADIM: XHTML
Her zaman olduğu gibi öncelikle uygulamamızın Xhtml kodlarını yazarak başlıyoruz. Aşağıda yer alan kodları sayfamıza kaydedelim.

<div class="iletisimbuton">
<a href="#" class="ac">İLETİŞİM</a>
<a href="#" class="kapat" style="display: none">KAPAT</a>
</div>

<div id="iletisimformu">
<h2>İLETİŞİM FORMU </h2>
<form name="iletisim" method="post" action="">
<label>Adınız Soyadınız </label> <input type="text" name="isim" />
<label>E-Posta Adresiniz</label> <input type="text" name="e-posta" />
<label>Web Adresiniz</label> <input type="text" name="web" />
<label>Mesajınız</label> <textarea name="mesaj"></textarea>
<label></label><input type="submit" name="gonder" value="GÖNDER" />

</form>
</div>

Xhtml kodlarında ne gibi bir işlem yaptığımızı yazımızın sonunda bulabilirsiniz. Şimdi hemen örneğimize ait CSS kodlarını yazalım.

2. ADIM: CSS

.iletisimbuton {background:#81c8f4;
padding:6px;width:auto;
margin:50px 0px 0px 0px;
position:fixed;
left:0;
border:2px solid #6abee8;
}

a.ac {background:url(img/email_go.png) no-repeat;padding:0px 0px 0px 20px;color:#fff;text-decoration:none;font:bold 14px arial, verdana, helvetica, sans-serif;}
a.kapat {background:url(img/cross.png) no-repeat;padding:0px 0px 0px 20px;color:#1a79a8;text-decoration:none;font:bold 14px arial, verdana, helvetica, sans-serif;}

#iletisimformu {
width:350px;
background:#3ea2e1 url(img/formbg.gif) repeat-x;
padding:5px;
color:#fff;
border:2px solid #6abee8;
margin:90px 0px 0px -400px;
display:block;
position:fixed;top:0;left:0;
}

#iletisimformu h2 {

color:#fff;
font:18px/36px arial, verdana, helvetica, sans-serif;
padding:0px 0px 6px 6px;
margin:0;
}

#iletisimformu label {
float: left;
width: 100px;
font:12px arial, verdana, helvetica, sans-serif;
padding:4px;
clear:both;
margin:8px 2px 8px 2px;
}

#iletisimformu input{background:#fff;border:2px solid #999;margin:8px 2px 8px 2px;padding:4px}
#iletisimformu textarea{background:#fff;border:2px solid #999;margin:8px 2px 8px 2px;padding:4px;width:200px;height:100px}

#iletisimformu input:focus, #iletisimformu textarea:focus {border:2px solid #bee2f4;background:#f5f5f5}

3. ADIM: jQUERY
Bu adımda yazdığımız kodlara göre oluşan elemanları tetikleyecek jQuery kodlarını yazıyoruz.

  <script>
$(document).ready(function() {
	$(".iletisimbuton a").click(function() { //mouse in
		$("#iletisimformu").animate({ marginLeft: '0px' },100);

	});

	$("a.kapat").click(function() { //mouse in
		$("#iletisimformu").animate({ marginLeft: '-400px' },100);

	});
	$(".iletisimbuton a").click(function () {
		$(".iletisimbuton a").toggle();
	});
});

  </script>

İŞİN ÖZETİ
Gerekli tüm kodlarımızı yazdıktan sonra biraz işin teknik kısmından bahsetmek istiyorum. Şayet uygulamamızın örnek görünümünü incelediyseniz sayfamız üzerinde var olan bir iletişim butonu olduğunu görürsünüz. Bu iletişim butonu sayfamız üzerinde sabit durmakta ve üzerine tıklandığında ise iletişim formumuz görünmekte. İleşitim formunun sayfamızda görünmemesi için margin değerlerinde sol tarafa eksi margin değeri verdiğimizi görebilirsiniz. Yine aynı şekilde iletişim butonu üzerine tıklandığında ise iletişim formumuz kaybolmakta.

İşin Javascript/jQuery bölümüne gelirsek oluşturduğumuz iletişim butonu isimli ögeye fare ile tıklandığında iletişimformu isimli id’mizin görünmesini sağlıyoruz. Görünme olayını ise jQuery’nin Animate özelliğinden yararlanarak iletisimformu isimli id’nin soldaki margin değeri 0px olacak şekilde sağlıyoruz. Bu da demek oluyor ki iletisimbuton isimli ögeye tıklandığı zaman iletisimformu isimli id marginLeft değeri 0px olana kadar bir yol katedecek :)

İletişim butonun açık ve kapalı olarak değişebilmesi içinse jQuery’de Toggle olayından yararlanıyoruz. İlk tıklamadan sonra toggle olayına giren iletisimbuton sınıfı a.kapat sınıfına dönüşüyor. Kapat sınıfına yapılan tıklama tetiği ile 0px marginLeft değere gelen iletisimformu isimli id tekrar eski yerine dönüyor.

Bu anlatımla size biraz karışık gelebilir ama yazılanları okuyup sonra örneği gördüğünüzde herşey daha iyi anlaşılacaktır. Görüldüğü üzere uygulamamızda aşırı jQuery ve Css/Xhtml kodu kullanmadık. Sadece doğru oluşturduğumuz ögelere doğru değerler ve olay başlatımları vererek uygulamamızı tamamladık.

Aslına bakarsanız bir id seçiciye verilen eksi margin değerlerinin sonradan jQuery ile görünür olmasını sağlayarak tasarımda birçok alanda bunu kullanabiliriz. Bu sayede menüler, navigasyonlar ve sayfa içi bilgilendirmeler yapılabilir. Ben bu örneğimizde bir iletişim paneli yapmayı uygun gördüm. Siz de örnek kodlardan yola çıkarak kendi uygulamanızı yapabilirsiniz.

Umarım sizler için faydalı bir anlatım olmuştur. Bir başka makalemizde görüşmek üzere.

Rastgele Yazılar

Bu yazı , , , , kelimeleriyle etiketlenmiştir. Bu yazıyı beğendiyseniz Delicious, Twitter, Facebook gibi sitelerde paylaşabilirsiniz. Yazılarımızı düzenli olarak takip etmek içinse Rss abonemiz olabilirsiniz.

jQuery ile Açılır Kapanır İletişim Formu Alanı Yapımı yazısı için 18 yorum yapılmış...

  1. bilge kagan diyor ki:

    mis gibi, ter temiz bir uygulama olmuş. sağol volkan.

  2. webthese diyor ki:

    Teşekkür ederim Bilge bu güzel sözlerin için. Eksik olma :)

  3. İbrahim diyor ki:

    Güzel uygulama, teşekkürler.

  4. ugur diyor ki:

    çok teşekkürler oldukça kullanışlı ve açıklayıcı bir makale.

  5. Serkan diyor ki:

    Volkan hocam senin de yeni yılın kutlu olsun dilediğin gibi geçer inşallah.

    uygumalama harika

    teşekkürler..

  6. webthese diyor ki:

    İbrahim, Uğur ve Serkan sizlere de çok teşekkür ederim. Uygulamayı beğenmenize sevindim. Açıkçası siteye koyarken biraz korka korka yazmıştım bunu :)

  7. Erhan diyor ki:

    Niye korka korka yazıyorsun ki? Burası senin alanın ve özgürce yazabilmen lazım. Kaldı ki çok güzel bir yazı ve uygulama olmuş. Kendi sitelerimden birisine uygulamayı düşünüyorum. Teşekkür ederim.

  8. webthese diyor ki:

    Erhan, korka korka yazmıştım dememin sebebi şu; jQuery benim uzmanlık alanım değil, sadece basit şeyler geliştiriyorum, jQuery ile yapılan ve yapılabilen onlarca şey varken yazdığım bu kodlar ve uygulamalar bana bile çok basit geliyor. Kaldı ki ziyaretçilerime basit gelmesin. Benim korkum bu. Ama sağolsunlar yorumlar ve gelen destek mesajları beni cesaretlendiriyor.

    Hele ki senin gibi bir jQuery gurusu bu basit uygulamayı beğendiyse ben daha ne diyim :)

  9. sait. diyor ki:

    Çok güzel bir uygulama elinize saglık ama bir konuda yardımcı olmanıız rica edicem.Bütün kodları sitemde uyguladım ama php bilgim hiç yok insanların mesajlarını göndermeleri için bu forma uygun iletisim.php kodu nasıl yazabilirm?

  10. webthese diyor ki:

    @sait açıkçası bu konuda yazmayı düşünmedim. Çünkü insanların kullandığı öyle ya da böyle bir iletişim form uygulaması zaten mevcut. Ancak internette arama yaparsan php ile yapılmış olan onlarca belki yüzlerce basit iletişim kodu bulabilirsin. Bunu yaptığım örneğe entegre etmekte sandığından çok daha kolay. Yeterki iletişim için gerekli host desteğin olsun. (Güncel uygulamaları takip et aradığın şeyi bulacaksın)

  11. Gürkan Meşe diyor ki:

    dolu dolu bir blog. :) Çok güzel uygulama olmuş , elinize sağlık.

  12. sait. diyor ki:

    İlginizi için çok teşekkürler ama sorumun yanıtı biraz kodlarla onyarak birazda inat ederek hallettip tekrar tşkler

  13. webthese diyor ki:

    @Gürkan teşekkür ederim. Beğenmene sevindim. @Sait yapılmayacak birşey değildi zaten azminden dolayı seni kutluyorum :) Umarım faydalı olmuştur bu uygulama.

  14. Suat diyor ki:

    Teşekkür ederim uygulama için ama bana yukarıdan aşağıya inen modeli lazım. Bunun için ne yapabilirim.

  15. gökay diyor ki:

    ellerine sağlık. çok güzel bir sistem. hem yandan açılan bir jquery kodu arıyordum hem de iletişim formu ; bir taşla iki kuş vurmuş oldum yani.

    gonder.php’yi de nette araştırma yaparken başka bir siteden buldum, aynı bu çalışma için yapılmış olanını. bayağı iyi oldu, ancak bir kaç sıkıntım var.

    yeni hazırladığım portföy siteme ekledim bunu,
    test ettim ancak açılan form ortadaki öğelerin altında kaldı.

    sitenin en arkasında kapsama div’i var ve onun z-index’i 1.
    onun üstünde ise sırayla etiket bulutu (jquery), menüler (flash) ve sürgülü orta banner (jquery).
    bunların da z-index’leri sırayla gidiyor.

    bu açılan iletişim formunun z-index’ini 5 yaptım sonra 10 yaptım etiket bulutunun üstüne çıktı (3 yapınca bile)
    ama diğerlerinin hep altında kaldı.

    nasıl çıkabilirim işin içinde.

    bunları da hallettim mi sitem büyük oranda bitiyor.

  16. Serkan diyor ki:

    Üstad volkan, bu formun soldan değilde, yukarıdan aşağıya doğru açılabilenini yapmak için ne gibi bir değişiklik yapmak lazım?

  17. Serkan diyor ki:

    Ben başardım :) MarginLeft kısımlarını MarginTop olarak değiştirip gerekli ayarları yaparsak oluyor.

Yorumunuzu Yazın