• No se han encontrado resultados

Estilos dinámicosCambio de estilosAnimaciones.

N/A
N/A
Protected

Academic year: 2022

Share "Estilos dinámicosCambio de estilosAnimaciones."

Copied!
12
0
0

Texto completo

(1)

Texto

http://www.optimum7.com/css3-man/

Tema 3, parte 5

Estilos

dinámicos

Cambio de estilos

Animaciones.

(2)

Javascript: estilos dinámicos

Javascript, parte 5 Animaciones con Javascript y CSS3

2

(3)

Estilos dinámicos. Animaciones

Acceso a estilos

Utilizando la propiedad style del DOM, correspondiente al atributo HTML del mismo nombre

style es un objeto con propiedades cuyo nombre se corresponde con CSS pero cambiando los guiones por las iniciales en mayúscula (camelCase) p.ej: font-size pasa a ser fontSize

¡¡Cuidado!! Las propiedades son Strings

<script language="JavaScript">

function aumentar(elemento) {

elemento.style.fontSize = parseInt(elemento.style.fontSize) + 2 + "px";

}

</script>

<p id="texto" style="font-size:12px">Hola</p>

<input type="button" value="Aumentar"

onclick="aumentar(document.getElementById('texto'));>

3

(4)

Estilos dinámicos. Animaciones

Animaciones en Javascript

Idea básica

Asignar posición o tamaño mediante CSS

Usar un temporizador para cambiar la posición o el tamaño cada cierto nº de segundos

Definir temporizadores

setInterval(código-entre-comillas, milisegundos)

setInterval(nombre-funcion, milisegundos, arg1, arg2,...)

setInterval devuelve un entero que identifica al temporizador y se puede utilizar para pararlo con clearInterval(identificador)

4

function saludo(mensaje) { alert(mensaje);

}

setInterval(saludo, 3000, “cansino”) setInterval(“alert('cansino')”, 3000)

(5)

Estilos dinámicos. Animaciones

Animaciones directamente en CSS

En CSS3 se pueden hacer animaciones simples, cambiando gradualmente el valor de alguna/s propiedad/es

Todavía está en proceso de estandarización. Solo funciona en versiones recientes de Chrome/Safari, Opera y Firefox (4.0)

(!) En cada navegador estas propiedades CSS tienen un nombre distinto

p {

background-color:white;

}

/* cuando se pase el ratón por encima, el color de fondo cambiará gradualmente a amarillo, en 2 segundos */

p:hover {

background-color: yellow;

-webkit-transition: background-color 2s; /* sintaxis chrome/safari */

}

5

(6)

Estilos dinámicos. Animaciones

Mientras el estándar se “estabiliiza”...

Cada navegador usa sus propios nombres de propiedades, así aunque el estándar cambiara se nos asegura que la implementación propia de cada navegador no lo hará

Pero eso nos fuerza a usar la sintaxis “oficial” más la de cada uno de los navegadores por separado

p {

background-color:white;

}

p:hover {

background-color: yellow;

-webkit-transition: background-color 2s; /* Chrome/safari */

-moz-transition: background-color 2s; /* Firefox */

-o-transition: background-color 2s; /* Opera */

transition: background-color 2s; /* estándar */

}

6

(7)

Estilos dinámicos. Animaciones

Mezclando CSS3 con Javascript

Usando las propiedades Javascript equivalentes a las de CSS

7

<div id="box" style="background-color:yellow; width:500px;

height:100px; overflow:hidden;">

Esto debería encogerse hasta desaparecer al hacer click

</div>

<input type="button" value="animar" onclick="transicion()">

<script type="text/javascript">

function transicion() {

var box = document.getElementById('box');

//se pueden transicionar varias propiedades //simultáneamente, separándolas por comas

//(también se puede hacer en CSS “puro”)

box.style.webkitTransition = 'width 3s, height 3s';

box.style.width = '0px';

box.style.height = '0px';

}

</script>

(8)

Javascript: estilos dinámicos

Javascript, parte 5 Estilos

dinámicos con DOM 2

Manipular los estilos CSS que no son “inline”

8

(9)

Estilos dinámicos. Animaciones

DOM Level 2 Style

El DOM 1 solo permite acceder a los estilos “inline”

El DOM Style (un módulo del DOM Level 2) permite acceder a hojas de estilo

En HEAD

En ficheros aparte

Como era de esperar, Explorer pre-IE9 usa un API similar pero incompatible

Ver http://www.quirksmode.org/dom/w3c_css.html

9

<p style=“color:red” id=“saludo”> hola </p>

(10)

Estilos dinámicos. Animaciones

Hojas y reglas de estilo

document tiene un array de hojas de estilo

document.styleSheets (compatible IE-estándar)

Cada hoja tiene un array de reglas

cssRules (estándar) rules (Explorer)

10

//obtener la primera regla de la primera hoja if (document.styleSheets[0].cssRules)

regla = document.styleSheets[0].cssRules[0]

else

regla = document.styleSheets[0].rules[0]

!

(11)

Estilos dinámicos. Animaciones

Propiedades de cada regla

style (equivalente al DOM 1)

selectorText: selector (como una cadena). Solo lectura (excepto Opera)

cssText: texto (como una cadena)

Se puede obtener el texto de toda la hoja (OK en IE), de una regla (OK en el resto) o de las propiedades de una regla (OK en todos)

11

document.styleSheets[0].cssRules[0].style.color = “red”

//propiedades de la 1ª regla de la 1ª hoja

document.styleSheets[0].cssRules[0].style.cssText

(12)

Estilos dinámicos. Animaciones

Manipular reglas

Insertar

insertRule(textoRegla, pos) (Estándar) addRule(selector, textoRegla) (Explorer)

Eliminar

deleteRule(pos) (Estándar) removeRule(pos) (Explorer)

12

document.styleSheets[0].insertRule(“H1 {color:red}”,0)

if (document.styleSheets[0].deleteRule)

! //estándar

! document.styleSheets[0].deleteRule(0) else

! //IE8 y anteriores

! document.styleSheets[0].removeRule(0)

Referencias

Documento similar

Abstract: This paper reviews the dialogue and controversies between the paratexts of a corpus of collections of short novels –and romances– publi- shed from 1624 to 1637:

Esto viene a corroborar el hecho de que perviva aún hoy en el leonés occidental este diptongo, apesardel gran empuje sufrido porparte de /ue/ que empezó a desplazar a /uo/ a

Missing estimates for total domestic participant spend were estimated using a similar approach of that used to calculate missing international estimates, with average shares applied

Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas

Por lo tanto, en base a su perfil de eficacia y seguridad, ofatumumab debe considerarse una alternativa de tratamiento para pacientes con EMRR o EMSP con enfermedad activa

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,

La siguiente y última ampliación en la Sala de Millones fue a finales de los años sesenta cuando Carlos III habilitó la sexta plaza para las ciudades con voto en Cortes de

Ciaurriz quien, durante su primer arlo de estancia en Loyola 40 , catalogó sus fondos siguiendo la división previa a la que nos hemos referido; y si esta labor fue de