En distintos sitios web habr谩s visto en las tablas que al pasar el rat贸n por encima de una fila, toda la fila se remarca.聽 Gracias a Dhtml Goddies podr谩s crear una tabla con ese efecto y, tambi茅n, con la posibilidad de que al hacer clic cobre una de las filas esta quede remarcada permanentemente.
Puedes ver una demostraci贸n del resultado final aqu铆. Como habr谩s observado all铆 se cambian tanto el color de fondo de la fila como el de la letra. En realidad puedes modificar cualquier atributo que permita CSS. Por ejemplo es posible agregar subrayado o cambiar la fuente.
Para hacerlo sencillamente debes definir los estilos CSS de tu tabla normalmente y adem谩s definir dos estilos m谩s con los nombres que desees. Uno para el efecto al pasar con el mouse sobre una fila y otro para cuando se hace clic. Por ejemplo:
.tableRollOverEffect{
/*Efecto cuando el mouse pasa por encima*/
background-color:#317082;
color:#FFF;
}
.tableRowClickEffect{
/*Efecto cuando se ha realizado clic*/
background-color:#F00;
color:#FFF;
}
Cuando realizas el c贸digo HTML de tu tabla es importante que le asignes un id de la siguiente forma
<table id="myTable">.
En la secci贸n head de tu p谩gina debes agregar el siguiente c贸digo, o bien puedes guardarlo en un archivo js y luego enlazarlo.
<script type="text/javascript">
/*************************************************************************
(C) www.dhtmlgoodies.com, November 2005
This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website.
Terms of use:
You are free to use this script as long as the copyright message is kept intact. However, you may not redistribute, sell or repost it without our permission.
Thank you!
www.dhtmlgoodies.com
Alf Magne Kalleland
*************************************************************************/聽聽聽 var arrayOfRolloverClasses = new Array();
var arrayOfClickClasses = new Array();
var activeRow = false;
var activeRowClickArray = new Array();
function highlightTableRow()
{
var tableObj = this.parentNode;
if(tableObj.tagName!=’TABLE’)tableObj = tableObj.parentNode;
if(this!=activeRow){
this.setAttribute(’origCl’,this.className);
this.origCl = this.className;
}
this.className = arrayOfRolloverClasses[tableObj.id];
activeRow = this;
}
function clickOnTableRow()
{
var tableObj = this.parentNode;
if(tableObj.tagName!=’TABLE’)tableObj = tableObj.parentNode;
if(activeRowClickArray[tableObj.id] && this!=activeRowClickArray[tableObj.id]){
activeRowClickArray[tableObj.id].className=”;
}
this.className = arrayOfClickClasses[tableObj.id];
activeRowClickArray[tableObj.id] = this;
}
function resetRowStyle()
{
var tableObj = this.parentNode;
if(tableObj.tagName!=’TABLE’)tableObj = tableObj.parentNode;
if(activeRowClickArray[tableObj.id] && this==activeRowClickArray[tableObj.id]){
this.className = arrayOfClickClasses[tableObj.id];
return;
}
var origCl = this.getAttribute('origCl');
if(!origCl)origCl = this.origCl;
this.className=origCl;
}
function addTableRolloverEffect(tableId,whichClass,whichClassOnClick)
{
arrayOfRolloverClasses[tableId] = whichClass;
arrayOfClickClasses[tableId] = whichClassOnClick;
var tableObj = document.getElementById(tableId);
var tBody = tableObj.getElementsByTagName(’TBODY’);
if(tBody){
var rows = tBody[0].getElementsByTagName(’TR’);
}else{
var rows = tableObj.getElementsByTagName('TR');
}
for(var no=0;no<rows.length;no++){
rows[no].onmouseover = highlightTableRow;
rows[no].onmouseout = resetRowStyle;
if(whichClassOnClick){
rows[no].onclick = clickOnTableRow;
}
}
}
</script>+
Por 煤ltimo tan solo deber谩s utilizar la siguiente l铆nea para dar todo por terminado.
addTableRolloverEffect('myTable','tableRollOverEffect','tableRowClickEffect');
Donde myTable es el id de la tabla y tableRollOverEffect junto a tableRowClickEffect son los estilos a utilizarse.
Y con este poco trabajo ya tendr谩s el efecto creado y podras utilizarlo en todas las tablas que desees.
Fuente: DHtml Goodies
Artículos relacionados
- Kotatsu: Herramienta online para crear tablas HTML f谩cilmente
- Mootols: Plugins para manejar y dar estilo a tus tablas HTML
- Consejos para crear una secci贸n de Preguntas Frecuentes en tu sitio web
- Formularios hechos s贸lo con CSS (sin usar tablas HTML)
- e24Squares: transici贸n en Ajax para la im谩genes de tu galer铆a








Mi茅rcoles, 29 de Octubre de 2008 a las 22.11
Donde se coloca “addTableRolloverEffect(’myTable’,'tableRollOverEffect’,'tableRowClickEffect’);”.
Tengo problemas, no obtengo ningun resultado.
Martes, 14 de Abril de 2009 a las 23.39
Yo estoy usundo php+ajax y donde mostrar el resultado para no recargar la pagina pero no me funciona pero lo probe sin usar ajax como puedo solucionar este problema te paso el codigo
en la pagina original tengo un div en donde coloco el resultado de la petision del ajax y te paso el codigo del resultado pero no esto no funciona con ajax pero si probando la pagina.
Documento sin título
.tableRollOverEffect1{
background-color:#317082;
color:#FFF;
}
.tableRowClickEffect1{
background-color:#F00;
color:#FFF;
}
Resultado de la Busqueda
Nombre
Apellido
Razon Social
Domicilio
0){
do{
?>
<a href=”editarcliente.php?id_cliente=”>
NO SE ENCONTRARON REGISTROS
addTableRolloverEffect(’myTable’,'tableRollOverEffect1′,’tableRowClickEffect1′);
//addTableRolloverEffect(’myTable2′,’tableRollOverEffect2′,’tableRowClickEffect2′);
Lunes, 1 de Marzo de 2010 a las 10.45
Muy claro el c贸digo, pero en que parte se coloca
addTableRolloverEffect(’myTable’,'tableRollOverEffect’,'tableRowClickEffect’); ???
Gracias!!!!
Lunes, 1 de Marzo de 2010 a las 11.23
@Adgamo, @Dexternica: La instrucci贸n habr铆a que colocarla al final del archivo, junto antes de la etiqueta
, encerrada entre tags
Lunes, 1 de Marzo de 2010 a las 13.08
Hola Daniela... muchas gracias por la informaci贸n, pero sigue sin funcionarme... Porfis podr铆as pegarme otra ayudadita??? El c贸digo involucra una tabla din谩mica que se llena desde una bd... le inclu铆 todo el c贸digo de ejemplo, pero no hace nada...
Gracias.
Mi茅rcoles, 2 de Febrero de 2011 a las 16.39
Buenisimo tuto... me funciono a la perfeccion y le da un efecto muy profesional a mis paginas
Mi茅rcoles, 2 de Febrero de 2011 a las 17.27
Tengo otra duda, como puedo hacer para que el codigo lo guarde en un archivo .JS y despues llamarlo desde mi pagina html... porfa alguna idea
Martes, 21 de Junio de 2011 a las 22.02
Funciona perfecto.... Gracias hermano me ayudo mucho
Domingo, 25 de Septiembre de 2011 a las 13.11
Necesito luego borrar los datos de esa fila seleccionada, ahora no se como puedo hacer para identificar la fila y enviar a mi controlador en java. agradezco de antemano
Domingo, 25 de Septiembre de 2011 a las 19.03
no funciona nada no me aparece nada, uso firefox