alette666, para ocultarlos de inicio, en el css display:none. volviendo a javascript, no te comento nada de jquery por que no lo uso, chrome no le da el foco al objeto sobre el que se clickea, de tal modo que hay que darselo. esto mejorará algo el efecto en chrome
Cita: <input type="button" onclick="javascript:aparecer('#div1', '10%'); this.focus();return false;" onfocus="javascript:desaparecer('#div2', '10%'); return focus(); return false;" value="Boton 1">
SirAse, prueba y adapta esto a tus necesidades
Cita: function fnc(e) {
evt = e.target;
document.getElementById('form_login').style.displa y = ((evt.id == 'login') && (evt.parentNode.id == 'opt')) || (evt.parentNode.id == 'form_login') ? 'block' : 'none';
document.getElementById('form_nuevo').style.displa y = ((evt.id == 'nuevo') && (evt.parentNode.id == 'opt')) || (evt.parentNode.id == 'form_nuevo') ? 'block' : 'none';
}
window.onload = function() {
document.addEventListener('click', function(event) {fnc(event)}, false);
}
<div id="opt">
<a href="#" id="login">login</a>
<a href="#" id="nuevo">nuevo usuario</a>
<form id="form_login" style="display: none">
<input type="text" value="login" />
</form>
<form id="form_nuevo" style="display: none">
<input type="text" value="nuevo" />
</form>
</div>
tal y como está no funciona en ie. busca información de e.target y addEventListener() para ese navegador