首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么潘趣特没有在苗条中被禁用?

为什么潘趣特没有在苗条中被禁用?
EN

Stack Overflow用户
提问于 2022-08-29 06:37:55
回答 1查看 75关注 0票数 0

在项目中,我正在尝试两个Pan缩放库。摇变焦工作得很好,但是当我尝试pausedispose摇变焦时,它不起作用了。我尝试过多种方法来解决这个问题,但没有找到任何可行的解决方案。

我已经创建了一个画布,然后将pan缩放添加到父元素中。变焦器工作,但暂停或破坏不工作。

App.svelte

代码语言:javascript
复制
    <div id="editor">
        <canvas id="canvas" />
    </div>

Toolbar.svelte

代码语言:javascript
复制
    import panzoom from "panzoom";

    function setActive(toolId) {
        const instance = panzoom(document.getElementById("editor"));

        if (toolId === "choose-color") {
            instance.resume();
        } else {
            instance.dispose();
        }
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-29 07:39:23

.pause().resume().dispose()是在一个实例上调用的方法,该实例是通过调用const instance = panzoom(element)创建的,因为您在setActive()中执行此操作,每次都要创建一个新实例.

下面是一个使用动作初始化泛缩放并将instance作为支柱传递给子组件以使其可用的版本。为了暂时禁用摇摄,我会在pause/resume之间切换

REPL

App.svelte

代码语言:javascript
复制
<script>
    import panzoom from 'panzoom'
    import Toolbar from './Toolbar.svelte'

    let instance

    function initPanzoom(node) {
        instance = panzoom(node)
    }
</script>

<Toolbar {instance} />

<svg id="svelte" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 519 139">
    <g use:initPanzoom>
        ...
    </g>
</svg>

<style>
    svg {
        width: 100%;
        height: 100%;
    }
</style>

Toolbar.svelte

代码语言:javascript
复制
<script>
    export let instance
</script>

<div>
    <button on:click={() => instance.pause()}>pause</button>
    <button on:click={() => instance.resume()}>resume</button>
    <button on:click={() => instance.dispose()}>dispose</button>
</div>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73524937

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档