Micaela 2 de Septiembre de 2008 a las 15.30
   Imprimir artículo
elWebmaster.com

Efecto para resaltar las filas de tus tablas

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


Enviar a Del.icio.us Enviar a Meneame Enviar a Digg Enviar a Fresqui Enviar a Enchilame

Comentarios (10)

  1. DexterNica dice:

    Donde se coloca “addTableRolloverEffect(’myTable’,'tableRollOverEffect’,'tableRowClickEffect’);”.
    Tengo problemas, no obtengo ningun resultado.

  2. HERNAN dice:

    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′);

  3. ADGAMO dice:

    Muy claro el c贸digo, pero en que parte se coloca
    addTableRolloverEffect(’myTable’,'tableRollOverEffect’,'tableRowClickEffect’); ???

    Gracias!!!!

  4. Daniela dice:

    @Adgamo, @Dexternica: La instrucci贸n habr铆a que colocarla al final del archivo, junto antes de la etiqueta

    1. </html>

    , encerrada entre tags

    1. <script></script>

  5. ADGAMO dice:

    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.

  6. esme dice:

    Buenisimo tuto... me funciono a la perfeccion y le da un efecto muy profesional a mis paginas

  7. esme dice:

    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

  8. Juan dice:

    Funciona perfecto.... Gracias hermano me ayudo mucho

  9. carlos dice:

    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

  10. carlosmercado dice:

    no funciona nada no me aparece nada, uso firefox

Deja tu opinión

© 2007 - 2008 elWebmaster.com | Powered by Wordpress | Diseño CSS y XHTML válido. | Algunos íconos basados en FamFamFam Mini
Iniciar sesi贸n