Quiero mostrar un mensaje con un fondo negro siempre que la orientación de la ventana gráfica esté en modo vertical en esbelto.
Usé svelte-viewport-info para obtener la orientación de la ventana gráfica.
<script lang="ts"> import Viewport from 'svelte-viewport-info' console.log('standard Screen Orientation: ',Viewport.Orientation) </script> <svelte:body on:orientationchangeend={() => { console.log( 'Screen Orientation changed to: ', Viewport.Orientation + ( Viewport.detailledOrientation == null ? '' : '(' + Viewport.detailledOrientation + ')' ) ) }} /> Quiero cambiar la propiedad de display de un div
landscape mode , la display se establece en noneportrait mode , la display está configurada para block Encontré una sintaxis js para llamar a la función después de un cierto intervalo de tiempo
var test = 0; var interval; function check_test() { if( test == 1 ){ clearInterval( interval ); console.log( "Test is 1 now!" ); } } interval = window.setInterval( check_test, 1000 );Entonces, dentro de esta función anterior que se llama cada 1000 milisegundos/1 segundo.
Encontré una sintaxis para usar la declaración if en esbelta aquí en #template-syntax-if
¿Cómo realizo todo esto en esbelto? Es confuso.
De los documentos svelte-viewport-info
Clases de CSS Además, el paquete también agrega o elimina las siguientes clases de CSS según la orientación actual del dispositivo:
Retrato : indica que el dispositivo se encuentra actualmente en cualquier orientación "Retrato"
Horizontal : indica que el dispositivo se encuentra actualmente en cualquier orientación "Horizontal"
Por lo tanto, ni siquiera tiene que rastrear ningún evento, simplemente puede usar estas clases para cambiar la visualización del div >> REPL
(El compilador no ve ningún elemento con las clases Landscape y Portrait , por lo que se debe agregar el modificador :global() para que se compilen)
<script context="module"> import Viewport from 'svelte-viewport-info' </script> <div class="only-portrait"> only visible in Portrait Mode </div> <style> :global(.Landscape .only-portrait) { display: none; } :global(.Portrait .only-portrait) { display: block; background: black; color: white; padding: 2rem; } </style>