木曜日, 7月 03, 2008

【JavaScript】 StyleをセットできるBuilder.node() このエントリーを含むはてなブックマーク


scriptaculousのbuilder.jsとほぼ同じ機能だが高速。一括してエレメント(タグ)と属性や内容を指定することができる。また、classNameを指定できるほか、StyleをActiveにゲット、セットできるのが拡張点。
追記:これはname.camelize()を使っており、prototype.jsを必要とする。必要のないバージョンはこちらにある=>とっても短いAJAXライブラリ extractive.js

var Builder = {

   initialize: function() {
   },
   node: function(elementname, param, text) {
     var element = document.createElement(elementname);
      if (param.id) element.id = param.id;
      if (param.className) element.className = param.className;
      if (param.style) {
        for (name in param.style) {
           element.style[name.camelize()] = param.style[name];
         }
      }
      if (text) {
         var value = document.createTextNode(text);
         element.appendChild(value);
      }
      if (param.src) element.src = param.src;
      return element;
   },
   // http://bmky.net/text/note/javascript-css.html
   //
   getActiveStyle: function ( element, property, pseudo ) {
       if( element.currentStyle ) { //IE or Opera
         if( property.indexOf( "-" ) != -1 ) property = property.camelize( );
         return element.currentStyle[ property ];
       }
       else if( getComputedStyle ) { //Mozilla or Opera
         if( property.indexOf( "-" ) == -1 ) property = property.deCamelize( );
         return getComputedStyle( element, pseudo ).getPropertyValue( property );
       }
        return "";
   }
}


top変数により、styleに動的にセットする


var hoge = Builder.node('div', { id : hogeid, className : 'hoge', style : { marginTop : top+'px'} } );



0 件のコメント:

 
© 2006-2015 Virtual Technology
当サイトではGoogle Analyticsを使ってウェブサイトのトラフィック情報を収集しています。詳しくは、プライバシーポリシーを参照してください。