Trigger a js function on orientationchangeend inside svelte:body(在svelte:Body内部的orientationchangeend上触发js函数)
问题描述
每当Svelte中的视区方向为纵向模式时,我都要显示黑色背景的消息。
我使用svelte-viewport-info获取了视区的方向。
<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 + ')'
)
) }}
/>
我要更改div
的display
属性
- 在
landscape mode
中,display
设置为none
- 在
portrait mode
中,display
设置为block
我找到js
语法to call function after a certain amount of time interval
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 );
在上述函数中,每1000毫秒/1秒调用一次。
我在#template-syntax-if中找到了在svelte中使用if
语句的语法
我如何在Svelte中执行所有这些操作?这让人困惑
- 在一定时间间隔后,我必须使用window.setInterval重复调用函数
- 函数需要从On:OrientationChangeEnd Inside svelte:Body开始检查视区方向
- 使用if in svelte将div的Display属性设置为Block或None,具体取决于第2步中的视区方向
推荐答案
来自svelte-viewport-infodocs
因此,您甚至不必跟踪任何事件,只需使用这些类更改div>;>;REPLcss类 此外,该包还根据当前设备方向添加或删除以下css类:
方向
纵向-表示设备当前处于任意纵向方向
横向-表示设备当前处于任何横向
(编译器看不到类
Landscape
和Portrait
的任何元素,因此必须添加:global()
modifier以便编译它们)
<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>
这篇关于在svelte:Body内部的orientationchangeend上触发js函数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:在svelte:Body内部的orientationchangeend上触发js函数
基础教程推荐
- 在for循环中使用setTimeout 2022-01-01
- 角度Apollo设置WatchQuery结果为可用变量 2022-01-01
- 动态更新多个选择框 2022-01-01
- 响应更改 div 大小保持纵横比 2022-01-01
- 当用户滚动离开时如何暂停 youtube 嵌入 2022-01-01
- Karma-Jasmine:如何正确监视 Modal? 2022-01-01
- 有没有办法使用OpenLayers更改OpenStreetMap中某些要素 2022-09-06
- 在 JS 中获取客户端时区(不是 GMT 偏移量) 2022-01-01
- 悬停时滑动输入并停留几秒钟 2022-01-01
- 我什么时候应该在导入时使用方括号 2022-01-01