RSS Feed

Posts Tagged ‘prog’

  1. Apró trükk tooltip gyártásra prototype.js-sel

    April 19, 2007 by nyu

    Talán nem a legszebb megoldás, de rendkívül rövid és könnyen konfigurálható, kusztomizálható.

    A medve:

    function get_absolute_pos(obj)
    {
       var shiftX = 0;
       var shiftY = 0;
       if (obj!=null)
       {
          if (obj.tagName.toUpperCase()=='DIV')
          {
             if (obj.scrollLeft) shiftX = obj.scrollLeft;
             if (obj.scrollTop) shiftY = obj.scrollTop;
          }
    
          var ret = { x: obj.offsetLeft - shiftX, y: obj.offsetTop - shiftY };
          if (obj.offsetParent) {
             var tmp = this.get_absolute_pos(obj.offsetParent);
             ret.x += tmp.x;
             ret.y += tmp.y;
          }
       }
    
       else ret={x:0,y:0};
       return ret;
    }
    
    function create_popups(class_name)
    {
       $$('.'+class_name).each(
          function(i)
          {
             Event.observe(i,'mouseover',function()
             {
                if (!this.popup)
                {
                   pos=get_absolute_pos(this);
                   this.popup=document.createElement('DIV');
                   this.popup.className='popup';
                   this.popup.innerHTML=this.innerHTML;
                   this.popup.style.top="-100px";
                   this.popup.style.left=(pos.x)+'px';
                   this.appendChild(this.popup);
                   this.popup.style.top=(pos.y-this.popup.offsetHeight-2)+'px';
                }
                this.appendChild(this.popup);
             });
    
             Event.observe(i,'mouseout',function()
             {
                this.removeChild(this.popup);
             });
          }
       );
    }

    és a css osztály:

    .popup {
       position:absolute;
       padding:2px;
       color:#000000;
       background-color:#f8f8a0;
       border:1px solid #000000;
    }

    Hogy miről is van szó?
    Először is a $$() függvény kikeresi az összes olyan objektumot, amihez a megadott css osztály tartozik. Aztán minden ilyen objektumhoz beállítok eseménykezelőt az Event.observe()-vel. A ‘mouseover’-re készítek egy div-et, amihez hozzárendelem a popup css osztályt, és belerakom az eredeti elem tartalmát, majd pozícionálom. (Azért rakom ki első körben a látható területen kívülre, hogy le lehessen kérdezni a magasságát, így aztán az appendChild után már könnyen a megfelelő helyre tudom mozgatni.) A ‘mouseout’-ra meg csak egyszerűen eltüntetem.
    Ahhoz, hogy picit gyorsabb legyen, figyelem azt is ‘mouseover’-kor, hogy már létrehoztam-e a popup div-et korábban.


  2. Miért fejleszt böngészőt, aki nem ért hozzá?

    April 16, 2007 by nyu

    Anno a microsoft vezette be az innerHTML-t az IE-be. Persze pont abban nem működik rendesen:

    http://support.microsoft.com/kb/276228

    …én két lábbal rugdosnám agyon azokat, akik a select box-ot készítették ebbe a világszégyene IE-be…


  3. Mi lesz az űrlapokkal?

    March 3, 2007 by nyu

    Pár napja találtam rá erre a linkre: http://www.miniajax.com/.

    Az Adobe erőlködik, hogy a flash ne csak animációt, zenét, videót és csicsás menüt jelentsen az emberek számára, hanem, hogy sikeresen lehessen használni formok és egyéb GUI elemek kiváltására. A másik oldalon azonban ott van az XHTML+CSS+AJAX hármas és a belőlük kinőtt rengeteg opensource megoldás. Elég csak a script.aculo.us-t megnézni, de ott van a Dojo is, vagy a Yahoo saját megoldása a YUI.

    Érdekes lesz megfigyelni, hogyan alakul a Flash sorsa ezeken a területeken. (Ott van azért az OpenLaszlo a flash segítségére, mint opensource megoldás.)
    Úgy érzem, hogy eljutottunk a javascript reneszánszához. Ugye mindenki emlékszik még ’97-’99-re, amikor először küzdött az ember azzal, hogyan tud kis életet varázsolni a kőkemény HTML 4.0-ba és mennyit lehetett szívni a böngészők “tájszólásával”? El is pusztult a Netscape, majd hamvaiból jött a főnix-szerű Firebird (Firefox) és vele egy időben berobbant a Web2.0. (Kis – dramaturgiai szempontból előnyös – túlzással élve.) Szóval már megint a nyakunkon a böngészőháború és már megint ugyanaz a két küzdő fél. Igaz most már picit eltolódtak a harcállások: a Firefox 3.0 már webalkalmazás-platform akar lenni, az IE7 és utódai meg egyszerűen csak a legelterjedtebb webböngésző, amiért bármit bevállalnak. No igen, persze hogy a Firefox is a legelterjedtebb böngésző akar lenni…

    Visszakanyarodva az induló gondolathoz: Az Adobe rossz lóra tett a flash-el? Csak azért vette meg a Macromediát, hogy bejusson a webes megoldások világába? Megérte ez ennyi pénzért? Macromedia=Flash és semmi több?

    Az Adobe úgy tűnik, hogy a Macromédiából csak a Flash-t pátyolgatja, a többi Macromedia termék meg csak ott van a weboldalon, mert jól mutat a sok termék. Vagy még mindig az integrációból adódó belassulás eredménye a nem frissített Macromedia termékvonal? Akármi is az igazság a Flash kezdi vészesen elveszteni előnyét az egyre nyomuló Ajax alapú GUI fejlesztésekkel szemben.

    Rajta vagyok a témán…