folder Tahribat.com Forumları
linefolder Html - CSS - XML - JavaScript - Ajax
linefolder Bir Kaç Javascript Numarası (Açılan Menü, Arguments)



Bir Kaç Javascript Numarası (Açılan Menü, Arguments)

  1. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Ayro
    Ayro's avatar
    Kayıt Tarihi: 08/Ağustos/2005
    Erkek

    Açılan menüler konusunda sıkıntım vardı.Tam istediğimi bulamadım ve tonla javascript olayı gerçekleştirmek gerekiyordu.Gerçekten canımı sıktı.Select olayını koydum, oda problemliydi.O zaman iş başa düştü.

    Jquery ile hallettim.Şimdi ;

    herhangi bir yerden menü açılsın istiyoruz (o yerin idsi vs..si olması laızm elimizde)

    kodlar: http://paste.org/43838

    çalışan örnek : http://ayrox.bplaced.net/tbt/

    Şimdii...

    ---

    basla fonksiyonumuza bile bile a,b dedim ki, herhangi birşey için yapabilirsiniz.Yani bütün açılan menülerde ; herhangi bir yerden basla(a,b) ile yapabilirsin.

    a = açılmasını istediğin div (altından açılır)
    b = açılmasını istediğin menu (menümüz)

    $(window).resize() kısmını yapmak zorundayım, yoksa bi kere açıldıktan sonra biri pencereyi mıncıklar, işler değişir.Bu yüzden hiççç uğraşmadan onu ekledim.

    Kolay basit, işe yarar...Gelelim ne nedir =

    ----------

    div.offset(); ile ilgili div'in pozisyonunu aldık.Bunu değişkene atadık .

    Daha sonra açılan menü'nün değerlerine eklememiz gerekyiordu..Değişken.left ve değişken.top kullandım.Değişken.right , değişken.bottom vs.. kullanılabilr.(ayrıntılı bilgi jquery offset).

    Fakat olduğu gibi kullanırsam, bizim menümüzde problem çıkacka çünkü tam olarak üstüne yapışacaktı.Biraz oralamak için left değerinden 10px azalttım, top değerine 25 pixel ekledim.

    --------------

    2. trick Arguments

    ayrıca fonksiyonlar fazlasıyla iğrençleşti çalıştığım projede.Tek özellik için 3-4 fonksiyon yazmam gerekiyordu.Gonderi1 gonderi2 şeklinde yapacağıma ;

    function goderi() yaptım.Burda 

    ne gönderirsek gönderelim kabul edecektir.Yani function('a',b,c,d,e,f,y,g) sonsuz argument gönderebiliriz.Bunları alabilirizde.Ben ilk argument'e özellik, diğerlerine ise gerkeneleri yazdım.Şöyle yapabiliriz ;

     

    function gonderi(){

        if(arguments[0]=='özellik1'){ yapılacaklar }
        elseif .... 

    }

    bu şekilde arguments sonsuza kadar gider.Başlangıcı 0 'dır.Ayrıca uzunluığunu öğrenmek isterseniz ;

    function gonderi(){ alert(arguments.length); }

    işe yarayacaktır.Length , javascriptte sıkça kullanılıyor.İşe yarar mı yaramaz mı bilmiyorum ama, birgün arayan çıkar herhalde.

    Devamını yazabilirim bir ara...şimdi proceye devam

  2. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Fuzulli
    Fuzulli's avatar
    Kayıt Tarihi: 30/Haziran/2007
    Erkek

    Ne den bu kadar uğraştığını anlamadım. Örnekte ki gibi bir şey yapmak bu kadar basit :|

    $(document).ready(function(){
    
    	$(".menu a").hover(function() {
    		$(this).next("div").animate({opacity: "show", top: "40"}, "slow");
    	}, function() {
    		$(this).next("div").animate({opacity: "hide", top: "45"}, "fast");
    	});
    
    
    });

     

  3. KısayolKısayol reportŞikayet pmÖzel Mesaj
    Ayro
    Ayro's avatar
    Kayıt Tarihi: 08/Ağustos/2005
    Erkek

    Fuzulli bunu yazdı:
    -----------------------------

    Ne den bu kadar uğraştığını anlamadım. Örnekte ki gibi bir şey yapmak bu kadar basit :|

    $(document).ready(function(){
    
    	$(".menu a").hover(function() {
    		$(this).next("div").animate({opacity: "show", top: "40"}, "slow");
    	}, function() {
    		$(this).next("div").animate({opacity: "hide", top: "45"}, "fast");
    	});
    
    
    });

     


    -----------------------------

    hocam iyi güzelde o top her zaman 45-40 ta olmazsa ne olacak ? bir sürü değişken var sonuçta ?tek fonksiyonla, sitenin 3-4 yerindeki menüyü idare edebilyiorum.

    gerçi top: "40" kısmında a.height yazılabilir .. oda olur.

Toplam Hit: 1636 Toplam Mesaj: 3