【问题标题】:Can Konva.js recognize SHIFT+dblclick?Konva.js 可以识别 SHIFT+dblclick 吗?
【发布时间】:2020-05-15 03:43:21
【问题描述】:

Konva的stage不识别SHIFT+dblclick是正确的理解吗?

在下面的代码中,(1)没有实现---是的,我想实现(1)。 双击时,(2)和(4)正确显示(如预期),而 按住 shift 键并双击时,会显示 (2)(不是 (1)!)和 (3)。

我的代码:

<!DOCTYPE html>
<html>
    <body>
        <div id="container"></div>
    </body>
    <script src="https://unpkg.com/konva@5.0.2/konva.min.js"></script>
    <script>//Double click on Konva's stage.
        var stage = new Konva.Stage({
            container: 'container',
            width: window.innerWidth,
            height: window.innerHeight
        });
        stage.on('dblclick', function (e) {
        var key_shift1 = e.shiftKey;
            if (key_shift1){
                console.log('(1)[Konva]SHIFT+dblclick-->No! I want this.');
            }else {
                console.log('(2)[Konva]dblclick-->Yes!');
            }
        });
    </script>
    <script>//Double click ordinally
        document.querySelector('body').addEventListener('dblclick', function (e) {
            var key_shift2 = e.shiftKey;
            if (key_shift2){
                console.log('(3)SHIFT+dblclick-->Yes!');
            }else {
                console.log('(4)dblclick-->Yes!');
            }
        });
    </script>
</html>

【问题讨论】:

    标签: javascript shift double-click konvajs


    【解决方案1】:

    您在dblclick 事件中使用的e 参数不是本机事件对象。它是一个自定义对象,由Konva 创建。如果你需要访问原生事件,你可以使用e.evt:

    stage.on('dblclick', function (e) {
      var shift = e.evt.shiftKey;
    });
    

    【讨论】:

    • 嗨@lavrton,非常感谢您的明确建议。我可以比以前更了解 Konva.js。我从 konvajs.org 学到了很多东西。令我印象深刻的是,我可以从 Konva.js 的作者那里得到答案!非常感谢!!
    猜你喜欢
    • 2012-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多