he añadido nueva propiedad publica:
Código javascript
:
Ver originalthis.hiddeTags = new Array('object', 'embed', 'select');
y 3 metodos privado:
Código javascript
:
Ver originalvar addClass = function(elem, _class)
{
elem.className+= " "+_class;
};
var removeClass = function(elem, _class)
{
var aClass = elem.className.split(' ');
var len = aClass.length;
var tmp = '';
for(var i=0;i<len;i++)
if(aClass[i]!==_class)
tmp+=" "+aClass[i];
elem.className = tmp;
};
var setClassByTags = function(_parent, aTags, _class, _type)
{
var childs = _parent.childNodes;
var clen = childs.length;
var tlen = aTags.length;
for(var i=0;i<clen;i++)
{
for(var j=0;j<tlen;j++)
{
if(childs[i].nodeName.toLowerCase()===aTags[j])
{
if(_type==='add')
addClass(childs[i], _class);
else if(_type==='remove')
removeClass(childs[i], _class);
}
if(childs[i].hasChildNodes())
setClassByTags(childs[i], aTags, _class, _type);
}
}
};
luego al llamar al metodo publico main, ocultamos los elementos añadiendo la clase zhidden:
Código javascript
:
Ver original// hidde elements
setClassByTags(document.body, this.hiddeTags, 'zhidden', 'add');
y luego en el metodo privado privateClose lo restauramos:
Código javascript
:
Ver originalsetClassByTags(document.body, t.hiddeTags, 'zhidden', 'remove');
añadimos zhidden al css:
En cuanto pueda lo subo a la demo ;)