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
- Efecto de zoom en las imágenes de tu sitio con Javascript
- WordPress: resaltando los comentarios del autor en su propio post
- 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′);