10,120 yorum yapıldı
RSS Aboneliği
Friendfeed
Youtube
E-posta

jquery

CSS ve jQuery ile dropdown select

Yazar: | 15 Mart 2012 Perşembe 22:53


Standart HTML select öğesine alternatif, daha şekilli, daha hoş bir dropdowndur kendileri. Ben yaptım, çok iyi oldu çok da güzel oldu tamam mı.

jQuery

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
$(document).ready(function(){  
 
// dropdown menu
$(".ddown").live("click", function() {
  if($("#ddown").is(":hidden")) {
    $("#ddown").slideDown('fast');
    $(".ddown").addClass("ddownact");
  }
  else {
    $("#ddown").slideUp('fast');
    $(".ddown").removeClass("ddownact");
   }
});  

$("#ddown a").live("click", function() {
  var deger = $(this).attr("data-id");
  var fiyat = $(this).find("strong").html();
 
  $(".ddown").html("<strong>"+fiyat+"</strong>");
  $("#deger").val(deger);  
 
  $("#ddown").slideUp('fast');    
  $(".ddown").removeClass("ddownact");  

});  

}); //doc ready end

Yazinin devamini okuyun »

jQuery ile inputa girilen değerleri eş zamanlı temizlemek

Yazar: | 24 Şubat 2012 Cuma 23:50


Senaryomuz şöyle: Sadece harf ve rakam girişine izin vermek istediğimiz bir inputumuz var, Türkçe karakter, boşluk, büyük harf ve sembol girilmesini istemiyoruz. Bu ve benzeri olaylar için üretilen onlarca plug-in olmasına rağmen sayfamıza ekstra yük bindirip şişirmek istemiyor, bu işi sadece birkaç satırlık kodla halletmek istiyoruz.

İşte sayfamızın </head> tagından önce eklememiz gereken ilaç gibi kodlarımız:

1
2
3
4
5
6
7
8
9
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){    
 $("#pislik").live("keyup", function() {
  var ohmis = $(this).val().replace(/[^a-z0-9]/gi,"").toLowerCase();  
  $(this).val(ohmis);
 });    
});
</script>

Bu da işlem yaptırmak istediğimiz, pislik id’sine sahip olan inputumuz (<body> tagından sonra, herhangi bir formun içerisine ekliyoruz):

1
<input type="text" id="pislik" />

Yazinin devamini okuyun »

jQuery ile elemanlara otomatik genişlik/yükseklik değerleri vermek

Yazar: | 31 Ocak 2012 Salı 22:37


Bazen jQuery ve CSS olmasaydı ne yapardım diye düşünmeden edemiyorum. Artık olay benim açımdan öyle bir hal aldı ki, tasarladığım her yeni sayfadan <title> tagını bile eklemeden önce jquery kütüphanesini çağırıyorum.

Olayımıza gelince; elimizde genişliğini ve yüksekliğini pencere değerlerine göre dinamik olarak ayarlamak istediğimiz bir tasarım elemanı (div) olduğunu düşünelim. Bu elemanı hem yatay hem de dikey olarak pencereye sığdırmak veya kenarlardan sadece bir kaç piksel boşluk bırakarak boyutlandırmak istiyoruz. Bunun için tek başına CSS ile çözüm üretmeye çalıştığımızda biraz tırmalamamız gerekebilir. Oysa eğer sayfamız halihazırda jQuery kütüphanesini yüklüyorsa bu işi bir kaç satır kodla kolayca halledebiliriz.

İşlem yapmak istediğimiz elemana .container gibi bir class atadığımızı varsayalım. Öncelikle pencere yükseklik/genişlik değerlerini alan ve o değerleri dinamik olarak bu elemana atayan bir fonksiyon oluşturalım:

1
2
3
4
5
6
7
8
9
10
function boyutlandirHele() {

// Pencere değerlerini alıyoruz
  var winwidth  = $(window).width(); // pencere genişliği
  var winheight = $(window).height(); // pencere yüksekliği
 
// Aldığımız değerleri .container'a dinamik olarak atıyoruz
  $(".container").css({'height': winheight, 'width': winwidth});

}

Ardından bu fonksiyonu sayfa yüklenirken çağıralım:

1
2
3
$(document).ready(function(){  
  boyutlandirHele();    
});

Bu eylem elemanımızı pencerenin içine hem yatay hem de dikey olarak cuk diye sığdırdı. Peki ya kullanıcı pencereyi küçültüp büyütür, yani herhangi bir sebeple yeniden boyutlandırma ihtiyacı hissederse? İşte o zaman bizim .container kalas gibi sabit kalır ve ortaya istenmeyen scrollbarlar (kaydırma çubukları) çıkar. Bunu aşmak için de “Hey jQuery, pencere yeniden boyutlandırıldığında aynı işlemleri tekrar yap dude!” demeliyiz, şöyle ki:

1
2
3
$(window).resize(function() {
  boyutlandirHele();
});

Hepsi bu kadar. Bakınız ne kadar hoş, ne kadar şirin ve latif bir olay değil mi? Bu basit işlemlerden sonra nur topu gibi otomatik olarak pencere boyutlarına ayak uyduran .container class’lı bir elemanınız olmazsa gelin beni bulun, döverim onu.

Scriptin çalışan örneğini inceledikten sonra heyecanınız daha da artacak. Fakat işlevlerini ve kaynak kodlarını incelerken “Hacı bu ne ya bir sürü şey yapmışsın, konumuzla ne alakası var tüm bunların?” demeyin, çünkü ben biraz tembel bir blog yazarıyım. Bir sonraki dersimizde site veya tasarım elemanlarının arkaplan resimlerini plugin kullanmadan manuel veya x sürede otomatik olarak değiştirmekten bahsedeceğim, tahmin etmiş olabileceğiniz üzere hepsi için aynı demoyu kullanmak niyetindeyim. Yazinin devamini okuyun »

jQuery dosya yükleme scripti (jQuery file uploader): Uploadify

Yazar: | 11 Ocak 2012 Çarşamba 4:10


Uploadify dosya yükleme işlemleri konusunda size büyük kolaylık sağlayacak, tamamen özelleştirilebilir bir jQuery plugini. JavaScript ve ActionScript’in maharetlerini kullanan bu plugin sayesinde sitenize/projenize dinamik olarak tekli ve çoklu dosya yükleme özelliği kazandırabilir, ziyaretçilerinize gelişmiş bir web deneyimi sağlayabilirsiniz.

Geliştiricinin ağzından scriptin sahip olduğu bazı özellikler:

  • jQuery Altyapısı
  • Çoklu Dosya Yükleme Özelliği
  • SWFObject Entegrasyonu
  • Popüler Sunucu Taraflı Yazılım Dilleriyle Uyumluluk
  • Tamamen Özelleştirilebilir (.FLA Dahil)
  • Geniş Destek Topluluğu
  • Kapsamlı Örnekler ve Dökümantasyon

Yazinin devamini okuyun »

Jquery ile background animate (kayan arkaplan efekti)

Yazar: | 12 Kasım 2011 Cumartesi 4:47


Uzun süredir sitede web tasarım ile ilgili içerikler yayınlamıyordum. Bunun temel sebebi zamanımın çoğunu zaten bu tür şeylerin alıyor olması, yani burda biraz daha farklı şeylerden bahsetmek, kendime zaman ayırmak istiyordum. Öte yandan bu siteyi açarken aklımdan geçenlerden biri de severek kullandığım / ürettiğim tasarım içeriklerini depolamak, lazım oldukça alıp kullanmaktı. Şimdi bu olaya devam etmeye karar verdim, farkettim ki Google’da ne zaman ihtiyaç duyduğım bir içeriği arasam karşıma yine kendi sitem çıkıyor.

Scriptimize gelecek olursak: Tasarım elemanlarınızın arkaplan pozisyonlarını animasyon efektleriyle değiştirebileceğiniz, içerisine bir tutam hayal gücü katarak ziyaretçilerinize şaşırtıcı deneyimler yaşatabileceğiniz kullanımı oldukça kolay bir jquery plugini.

Kullanım

Jquery kütüphanesini ve plugini (paketin içerisinde mevcut) </head> tagından önce çağırın

1
2
<script type="text/javascript" src="js/jquery-1.7.min.js"></script>
<script type="text/javascript" src="js/jquery.backgroundPosition.js"></script>

Tasarım elemanlarızın üzerine gelindiğinde arkaplan pozisyonlarının değişmesi için .hover() eventini kullanabilirsiniz. Bunun için yine </head> tagından önce aşağıdaki kodları yerleştirin (veya scripts.js gibi bir isimle kaydedip yukarıdaki biçimde çağırın)

1
2
3
4
5
6
7
8
9
10
<script type="text/javascript">
$(document).ready(function(){  
$(".bgme").hover(
   function () {
    $(this).animate({backgroundPosition: '-100px 0'}); // Arkaplan pozisyonunu değiştir
   },function(){
    $(this).animate({backgroundPosition: '0 0'}); // Önceki pozisyona dön
 });
}); //doc ready end
</script>

Buna göre .bgme class’ı atadığınız elemanların üzerlerine mouse ile gelindiğinde arkaplan pozisyonları belirttiğiniz değerlere göre (-100px 0) animasyonlu olarak değişecek. Yazinin devamini okuyun »

Jquery ile yazdığım ilk browser oyunu: “Hepsini Gebert”

Yazar: | 17 Temmuz 2011 Pazar 17:41


Dün gece yine tasarım deryalarında kaybolup gitmiştim ama aklımda sürekli şu son terör eylemlerine şehit verdiğimiz askerlerimiz vardı. Vallahi bu olaylar beni çok fena dellendiriyor, sürekli elimden ne gelir diye düşünüp duruyorum. Dün gece yine böyle düşünceler içerisindeyken birden aklıma teröristlerin katledildiği bir oyun hazırlamak geldi ve o dakika hiç düşünmeden uygulamaya geçtim. Gece bittiğinde ortaya böyle bir sonuç çıkmıştı.

Ne işe yarayacak diye sorabilirsiniz, ben de Hz. İbrahim’in atıldığı ateşe gagasıyla su taşıyan kuşun verdiği cevabı veririm: Olsun, en azından tarafımız belli olsun.

Eksikler: Random çıkan karakterlerle ilgili hala adam akıllı bir algoritmaya ihtiyacım var bu açıdan karakterlerin ekranın abuk subuk yerlerinde ve sürekli sol tarafında çıkıyor olmasına kızmayın. Seri (makinalı) ateş etme, aynı anda birden fazla karakter çıkması, farklı silah ve arkaplan seçimi gibi geliştirmeler ekleyeceğim (zamanla tabi).

Ayrıca şu anda sayaç çalışıyor gibi görünse de gerisayım bittiğinde oyun durmuyor, dilediğiniz kadar terörist gebertebilirsiniz yani.

Oyunu şu adresten test edebilirsiniz: http://www.egonomik.com/gebert/ Testten sonra görüşlerinizi paylaşabilirseniz sevinirim. Ayrıca “hacı ben de şöyle bir özellik yazıp geliştirmeye yardımcı olabilirim” diyen tüm jquery gurularına kapım açık.

Jquery accordion content slider: Kwicks

Yazar: | 2 Temmuz 2011 Cumartesi 18:52


Kwicks basit, sade ve kullanışlı bir jquery plugini. Plugin sayesinde içeriklerinize kolayca akordiyon efekti verebilir, web sayfanızda alan tasarrufu sağlayabilirsiniz. Standart versiyonda içeriklere ait arkaplan ve aktif arkaplan renkleri bulunuyor ancak ben bir kaç ufak dokunuşla içerik bölümlerine resim ekledim, siz de kendi ihtiyaçlarınıza göre değiştirebilirsiniz.

Scriptin düzenlenmiş örneğini buradan inceleyebilirsiniz. Yazinin devamini okuyun »

Jquery ile formdaki tüm chexboxları seçmek (check all / uncheck all)

Yazar: | 28 Mart 2011 Pazartesi 15:54


Eğer formunuzda milyonlarca checkbox inputu varsa ve hepsini tek tek seçili hale getirmek cehennem azabı gibi gelebilir. Bu işi salt javascript ile halledebileceğiniz gibi eğer sayfanızda zaten jquery kütüphanesi yükleniyorsa ufacık bir fonksiyon ile de kolaylıkla üstesinden gelebilirsiniz.

Jquery fonksiyonu

1
2
3
4
5
6
7
8
<script type="text/javascript">
  // Tüm checkboxları seç    
  function tumunuSec(status) {
    $("#kutucuklar input").each( function() {
      $(this).attr("checked",status);
     });
    }
</script>

Öncelikle sayfanın tepesine (veya harici .js dosyanıza) tüm işi halledecek olan fonksiyonu tanımlayın.

“kutucuklar” id’sine sahip kapsayıcı div

1
2
3
4
5
<div id="kutucuklar">
<input name="kutu1" value="1" type="checkbox">Kutu 1
<input name="kutu2" value="1" type="checkbox">Kutu 2
<input name="kutu3" value="1" type="checkbox">Kutu 3
</div>

Tüm checkbox elemanlarınızı “kutucuklar” id’sine sahip kapsayıcı bir divin içerisine yerleştirin. Dilerseniz bu div’i tüm formunuzu kapsayacak şekilde ayarlayabilir veya direkt formunuza bu id’yi tanımlayabilirsiniz.

Seçme / seçim kaldırma işlemini yapacak olan eleman

1
<input type="checkbox" onclick="tumunuSec(this.checked)">Tümünü Seç / Seçimi Kaldır

Son elemanı da yerleştirdikten sorna işiniz tamam, bu eleman sayesinde artık formunuzda yer alan tüm checkbox’ları seçili hale getirebilir veya tümünün seçimini aynı anda kaldırabilirsiniz.

jQuery ile select elemanına ait value ve text değerlerini almak

Yazar: | 22 Mart 2011 Salı 15:53


Bir otogaleri sitesi üzerinde çalışıyorum ve select ile listelenen araçların hem value hem de text değerlerini iki farklı inputa yazdırmam gerekti. Çok enteresandır ama her şeyi hep value üzerinden hallettiğim için olsa gerek daha önce böyle bir olaya ihtiyaç duymamıştım. Son derece pratik bir yol buldum ve daha sonra kaynak olarak kullanmak üzere buraya ekleyeyim dedim, sizin de işinize yarayabilir.

Script:

1
2
3
4
5
6
7
8
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript">
  function getValue(theId,theMarka) {
      $("#marka_id").val(theId);
      $("#marka_new").val(theMarka);    
    // alert(theMarka);
    }
</script>

Select input:

1
2
3
4
5
<select size="1" name="marka" id="marka" onchange="getValue($('#marka').val(),$('#marka option:selected').text());">
<option value="1">Audi</option>
<option value="2">BMW</option>
<option value="3">Mercedes</option>
</select>

Çıktı inputları:

1
2
value: <input type="text" name="marka_id" size="20" id="marka_id"/><br />
text: <input type="text" name="marka_new" size="20" id="marka_new"/>

Yazinin devamini okuyun »

W3C XHTML/Strict standartları ve uygun yeni pencere linki oluşturmak

Yazar: | 8 Eylül 2010 Çarşamba 23:32


Egonomik için yeni bir tema tasarlamayı düşünüyordum, bu düşüncemin altında kullanıcılardan gelen isteğin yanında (ki bu isteğin şimdilik yersiz olduğu kanaatine vardık) bir de şu anki temanın XHTML/Strict DTD (Document Type Defination) standartlarına uymuyor olması yatıyordu. Aslında bu standartlara şimdiye kadar çok fazla itibar göstermiyordum, gerçi Google’ın bile uygunluk testinden geçemediğini düşününce hala da pek önemsediğim söylenemez, ancak ne varki iyi bir tasarımcı olarak anılmak istiyorsanız çağa ayak uydurmanız ve oyunu kurallarına göre oynamanız şart.

Bu standartları belirleyen vatandaşlar iyi hoş bir çok güzellik yapmışlar ancak bazı konularda akıllarından tam olarak ne geçtiğini tahmin etmek zor. Ben özellikle sıklıkla ve severek kullandığımız target=”_blank” ifadesini kaldırmış olmalarına ifrit oldum. Bazı kaynaklara göre bu ifadenin tarayıcının ileri/geri fonksiyonlarını devre dışı bırakması kullanıcıyı zor durumda bırakıyormuş, haliyle standartlar arasında yer alması pek mantıklı değilmiş. Yani eğer kullanıcı o linki yeni bir pencerede açmak istiyorsa bunu kendi iradesiyle yapmalıymış. Evet bu aslında bir yere kadar doğru bir düşünce fakat hal vaziyet bu diye site sahibinin suçu ne? Yani tarayıcı ve internet kullanımına tam anlamıyla vakıf olmayan, “Tebrikler 100.000 TL Kazandınız!” türü reklamlara bile tıklayan ziyaretçiyi (anneler/babalar/dayılar), hiç hazzetmediği fakat yine de bağlantı vermek zorunda kaldığı siteye yönlendirirken (örn: Mynet) kaybedecek olması tartışılır bir durum değil mi? Hayır gidip popup açtıran kodlar için aynı yorumu yapsalar amenna ama bu olayın bana göre anlaşılabilir bir tarafı yok. Neticede ortada standartlara uygun sabit bir alternatif olmamasına rağmen siz dilediğiniz zaman javascript yardımıyla yeni bir pencere açtırabiliyor ve uygunluk testinden rahatlıkla geçebiliyorsunuz. Yani eğer o an kullanacağınız linkin SEO’ya uygun olup olmaması önemli değilse ve kulağınızı biraz uzun yoldan tutmaya razıysanız aşağıdaki gibi bir kod işinizi rahatlıkla görüyor:

1
<a href="javascript:void(0);" onclick="window.open('http://www.google.com/');">Google Aç</a>

Yazinin devamini okuyun »