2011-03-22 123 views
68

He heredado un proyecto en el que estoy trabajando y estoy actualizando algunas animaciones de jquery (muy poca práctica con jquery).Agregar y eliminar el atributo de estilo de div con jquery

Tengo un div Necesito agregar y quitar el atributo de estilo. Aquí está el div:

<div id='voltaic_holder'> 

En un momento de la animación necesito agregar un estilo a la misma:

<div id='voltaic_holder' style='position:absolute;top:-75px'> 

He buscado alrededor y encontró el método .removeAttr() pero no puedo ver cómo agregarlo, o incluso partes remotas de él (como la parte superior: -75px solamente).

Gracias,

+0

'$ ('voltaic_holder') style = null' tal vez.? Los estilos tienen su propio árbol de objetos completo. la mayoría de los demás atributos son solo clave = datos de tipo de valor. –

Respuesta

156

que podría hacer cualquiera de las siguientes

Ajuste cada estilo de propiedad individual:

$("#voltaic_holder").css("position", "relative"); 

múltiples determinadas propiedades de estilo a la vez:

$("#voltaic_holder").css({"position":"relative", "top":"-75px"}); 

Eliminar un estilo específico:

$("#voltaic_holder").css({"top": ""}); 
// or 
$("#voltaic_holder").css("top", ""); 

extirpar todo el atributo de estilo:

$("#voltaic_holder").removeAttr("style") 
+0

¿Puedo agregar más de 1 propiedad css por línea? O tengo que hacer uno para cada propiedad de estilo como lo siguiente: '$ (" # voltaic_holder "). Css (" position "," relative ");' '$ (" # voltaic_holder "). Css (" arriba "," -75 ");' – drpcken

+3

Para responder eso, sí puede. Simplemente use un objeto literal en la función .css(). Como $ ('foo'). Css ({'height': '30px', 'width': '50px'}); –

+0

Sí, puede - ver mi respuesta editada arriba –

15

Si está utilizando jQuery, utilice css añadir CSS

$("#voltaic_holder").css({'position': 'absolute', 
    'top': '-75px'}); 

Para quitar los atributos CSS

$("#voltaic_holder").css({'position': '', 
    'top': ''}); 
+0

No se puede eliminar la posición o el atributo superior del elemento voltaic_holder porque no tiene estos atributos.Esas son propiedades CSS definidas en el atributo de estilo. –

+0

@Peter - doh! Editado para usar '.css' – justkt

7

El fácil Manera de manejar esto (y mejor Solución HTML para arrancar) es configurar clases que tengan los estilos que desea usar. Entonces es una simple cuestión de usar addClass() y removeClass(), o incluso toggleClass().

$('#voltaic_holder').addClass('shiny').removeClass('dull'); 

o incluso

$('#voltaic_holder').toggleClass('shiny dull'); 
16

Para eliminar completamente el atributo de estilo de la extensión voltaic_holder, hacer esto:

$("#voltaic_holder").removeAttr("style"); 

Para añadir un atributo, haga lo siguiente:

$("#voltaic_holder").attr("attribute you want to add", "value you want to assign to attribute"); 

Para eliminar solo el la parte superior estilo, hacer esto:

$("#voltaic_holder").css("top", ""); 
Cuestiones relacionadas