jQuery ile Açılır Kapanır İletişim Formu Alanı Yapımı
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
jQuery ile Açılır Kapanır İletişim Formu Alanı Yapımı yazısı için 18 yorum yapılmış...
Yorumunuzu Yazın
mis gibi, ter temiz bir uygulama olmuş. sağol volkan.
Teşekkür ederim Bilge bu güzel sözlerin için. Eksik olma :)
Güzel uygulama, teşekkürler.
çok teşekkürler oldukça kullanışlı ve açıklayıcı bir makale.
Volkan hocam senin de yeni yılın kutlu olsun dilediğin gibi geçer inşallah.
uygumalama harika
teşekkürler..
İ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 :)
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.
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 :)
Ç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?
@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)
dolu dolu bir blog. :) Çok güzel uygulama olmuş , elinize sağlık.
İlginizi için çok teşekkürler ama sorumun yanıtı biraz kodlarla onyarak birazda inat ederek hallettip tekrar tşkler
@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.
Teşekkür ederim uygulama için ama bana yukarıdan aşağıya inen modeli lazım. Bunun için ne yapabilirim.
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.
[...] Uygulamanın Kodları ve Anlatım : http://www.t-infection.com/jquery-ile-acilir-kapanir-iletisim-formu-alani-yapimi/ [...]
Ü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?
Ben başardım :) MarginLeft kısımlarını MarginTop olarak değiştirip gerekli ayarları yaparsak oluyor.