Haz tu primera transición flash personalizada trucos CSS

Esta Delgado transition API Proporciona una forma premium de animar componentes a medida que ingresan o salen de un documento, incluidas las transiciones Svelte personalizadas. defecto, transition Las directivas utilizan animaciones CSS, que suelen proporcionar un mejor rendimiento y permiten que el hilo principal del navegador permanezca abierto. La API es tan simple como esto: <element transition:transitionFunction />También puede especificar in o out Una directiva de conversión unidireccional solo se implementa cuando el elemento está instalado o Desinstalar.

Ejemplo de una transición Svelte funcional (transición a demostración)

Svelte proporciona tiempo de ejecución svelte/transition Un paquete de siete transiciones Svelte preempaquetadas, todas las cuales se pueden iniciar y ajustar a su gusto. Combine esto con svelte/easing un paquete que permite una amplia interacción sin tener que escribir el código de conversión usted mismo. Varias características de transición y relieve. Siente lo que es posible.

¿Está buscando instrucciones sobre cómo comenzar con Svelte? Tenemos una revisión sólida para verificar.

API de transformación personalizada Svelte

Si necesita más control que el que proporciona Svelte Transformation API, Svelte le permite establecer sus propias funciones de transformación personalizadas, siempre que siga algunas convenciones. De la documentación de la API de transformación personalizada, se ve así:

transition = (node: HTMLElement, params: any) => {
  delay?: number,
  duration?: number,
  easing?: (t: number) => number,
  css?: (t: number, u: number) => string,
  tick?: (t: number, u: number) => void
} 

Vamos a desglosarlo: la función de transformación obtiene una referencia al nodo DOM donde transition La directiva se usa y devuelve un objeto con algunos parámetros que controlan la animación, lo más importante, un css o tick Característica.

Esta css La función de la función es devolver una cadena CSS que describa la animación, generalmente involucrando alguna transformación o cambio de opacidad. Alternativamente, puede optar por devolver tick una característica que le permite controlar todos los aspectos de la animación utilizando un potente JavaScript, pero tiene un rendimiento reducido porque este tipo de transición no utiliza animaciones CSS.

estos dos css y tick La función tiene dos parámetros llamados (t, u) Como siempre. t es un número decimal de 0.00 ellos llegan 1.00 Cuando el elemento ingresa al DOM y se recupera de 1.00 espalda 0.00 cuando el elemento se va. Esto u el parametro es inverso t o 1 - t en cualquier momento. Por ejemplo, si devuelve una cadena transform: scale(${t}), su elemento funcionará sin problemas desde 0 ellos llegan 1 A la entrada y de vuelta a la salida.

Estos conceptos pueden parecer un poco abstractos, ¡así que vamos a solidificarlos creando nuestra propia transición Svelte personalizada!

Crea tu primera transición Svelte personalizada

Primero, configuremos una plantilla que nos permita cambiar la presencia de un elemento en el DOM usando Svelte #if obstruido. Recuerde que las transiciones Svelte se ejecutan solo cuando un elemento realmente sale o ingresa al DOM.

<script>
  let showing = true
</script>

<label for="showing">
  Showing
</label>
<input id="showing" type="checkbox" bind:checked={showing} />

{#if showing}
  <h1>Hello custom transition!</h1>
{/if}

Debería poder marcar la casilla y ver cómo aparece y desaparece nuestro elemento.

Luego configuremos nuestra función de transición Svelte personalizada y asociémosla con nuestro elemento.

<script>
  let showing = true
  // Custom transition function
  function whoosh(node) {
    console.log(node)
  }
</script>

<label for="showing">
  Showing
</label>
<input id="showing" type="checkbox" bind:checked={showing} />

{#if showing}
  <h1 transition:whoosh>Hello custom transition!</h1>
{/if}

Ahora, si marcas la casilla, verás <h1> Los artículos se registran en la consola. ¡Esto prueba que hemos conectado correctamente nuestra transformación personalizada! En nuestro ejemplo, en realidad no usaremos nodos DOM, pero a menudo es útil tener acceso a elementos para hacer referencia a sus estilos o tamaños actuales.

Para que nuestro elemento realice cualquier animación, debemos devolver una matriz que contenga css (o tick) Feature.let nuestro css La función devuelve una fila de CSS para escalar nuestro elemento.También devolveremos un duration Una propiedad que controla cuánto dura la animación.

<script>
  function swoop() {
    return {
      duration: 1000,
      css: () => `transform: scale(.5)`
    }
  }
  let showing = true
</script>

<!-- markup -->

¡Tenemos algo moviéndose! Notarás que nuestro elemento salta directamente a .5 Acérquese cuando marque las casillas de verificación. Es algo, pero si se sintiera mejor suavemente transición. Esto es (t, u) entran los parámetros.

<script>
  function swoop() {
    return {
      duration: 1000,
      css: 
    }
  }
  let showing = true
</script>

<!-- markup -->

¡Estamos hablando ahora! recordar t suavemente desde 0.00 ellos llegan 1.00 Cuando entra el artículo, y viceversa. Esto nos permite lograr la suavidad deseada. De hecho, lo que acabamos de escribir es esencialmente incorporado scale Transición desde svelte/transition paquete.

Seamos un poco más de fantasía. Para que coincida con el homónimo de nuestra transición Svelte personalizada, swoop, agreguemos un translateX de nuestro transformpara que nuestro elemento aumente y disminuya en el lado.

Antes de continuar, me gustaría desafiarlo a probar primero la implementación. Créeme, lo harás ¡se Divertido! Supongamos que queremos convertir al 100 % cuando el elemento sale y al 0 % cuando el elemento entra.

[waiting…]

Como está el progreso ¿Quieres comparar respuestas?

Esto es lo que obtengo:

css: (t, u) => `transform: scale(${t}) translateX(${u * 100}%);`

¡Está bien si tienes algo diferente! Déjame desglosar lo que hice.

La clave aquí es usar el segundo parámetro. css Característica Si miramos nuestra animación, cuando el elemento entra en la pantalla, queremos resultado existe scale(1) translateX(0%)así que no podemos usarlo como está t Para ambos scale y transformEsta es la conveniencia detrás u parámetro – es lo contrario t en cualquier momento, para que sepamos que será 0 Cuándo t1luego multiplicar u Multiplique por 100 para obtener el valor porcentual y agregue a % Firma definitiva.

aprender la interacción entre los dos t y u Una parte esencial del rompecabezas para una transición personalizada en Svelte. Estos dos parámetros crean un mundo dinámico para su animación; se pueden dividir, multiplicar, torcer o torcer según tus necesidades.

vamos a golpear mi favorito svelte/easing Juega un papel en nuestra transición y llámalo un día:

<script>
  import { elasticOut } from 'svelte/easing'
  function swoop() {
    return {
      duration: 1000,
      easing: elasticOut,
      css: (t, u) => `transform: scale(${t}) translateX(${u * 100}%)`
    }
  }
  let showing = true
</script>

<label for="showing">
  Showing
</label>
<input id="showing" type="checkbox" bind:checked={showing} />

{#if showing}
  <h1 transition:swoop>Hello custom transition!</h1>
{/if}

me tuerzo

¡Felicidades! Ahora puede crear características de transición Svelte personalizadas. Solo arañamos la superficie de lo que es posible, pero espero que sienta que tiene las herramientas para seguir investigando. Le recomiendo que lea Documentación y mediante Lección oficial para más conocimiento.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

rtp live

Baccarat Online

Bonus New Member

Roulette Online

Sicbo Online

slot gacor

https://alfarizqireload.com/

https://mininos.es/slot-dana/