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 件のコメント:
コメントを投稿