Foros del Web » Programando para Internet » Javascript »

Select Personalizado

Estas en el tema de Select Personalizado en el foro de Javascript en Foros del Web. Amigos, me guistaria que me ayuden, sucede que en la siguiente pagina: http://www.easy-designs.net/articles...les/final.html , existe un select personalizado, es posible asignarle estilos y todo lo ...
  #1 (permalink)  
Antiguo 02/12/2006, 11:01
Avatar de mabarcau  
Fecha de Ingreso: mayo-2005
Mensajes: 317
Antigüedad: 19 años
Puntos: 0
Pregunta Select Personalizado

Amigos, me guistaria que me ayuden, sucede que en la siguiente pagina:

http://www.easy-designs.net/articles...les/final.html

, existe un select personalizado, es posible asignarle estilos y todo lo demas, pero mi problema es que al displayar las opciones del select y hacer un click fuera de el, la lista no se contrae, lo cual si sucede con un select tradicional, por favor, me gustaria saber como hago para al realizar un click fuera de ese panel, el mismo se contraiga.


Desde ya las gracias por su tiempo.
  #2 (permalink)  
Antiguo 02/12/2006, 13:02
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola mabarcau

Esto tiene más que ver con JavaScript que con Css, así que muevo el mensaje a ese foro.

Movido desde Css.

Saludos,
  #3 (permalink)  
Antiguo 02/10/2008, 03:29
 
Fecha de Ingreso: octubre-2008
Mensajes: 1
Antigüedad: 15 años, 7 meses
Puntos: 0
Respuesta: Select Personalizado

Este código amplia las funciones para que al sacar el mouse de la lista se cierre la lista, no es exactamente al pulsar sobre otra zona como hacen los select normales, pero mejor que nada...

en la función

function selectReplacement(obj) {

al final antes de la linea obj.parentNode.appendChild(ul);

inserta:

// Contribution by b_marinas
// close the list when the mouse goes out the list
// checks than the new target is a LI for determine the focus has changed.
ul.onmouseout = function(e) {
if (!e) var e = window.event;
var relTarg = e.relatedTarget || e.toElement;
if (relTarg.nodeName != 'LI'){
closeList (ul);
}
}
// end contribution by b_marinas


además añade la función siguiente dentro del script.

[I] // Contribution by b_marinas
// Close the list making the last selection visible as selected object
function closeList(obj) {
var lis = obj.getElementsByTagName('li');
for (var i=0; i<lis.length; i++) {
if (lis[i].className =='') { // not the selected list item
lis[i].className='';
lis[i].onclick = function() {
selectMe(this);
}
} else {
setVal(lis[i].selectID, lis[i].selIndex);
lis[i].className='selected';
obj.className =
obj.className.replace(new RegExp(" selectOpen\\b"), '');
lis.onclick = function() {
obj.className += ' selectOpen';
this.onclick = function() {
selectMe(this);
}
}
}
}
}
// end contribution by b_marinas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:37.