从“dragmove”回调中移动图层后,事件丢失

2024-01-28

我有一个移动图层的滚动条,因此该图层在滚动条的“dragmove”回调中移动。这会导致所有绑定事件在移动的图层上断开连接!

请看这个小提琴:http://jsfiddle.net/NY4QK/10/ http://jsfiddle.net/NY4QK/10/

var stage = new Kinetic.Stage({
    container: 'container',
    width: 200,
    height: 200,
});

var fixedLayer = new Kinetic.Layer();
stage.add(fixedLayer);

var old_x = 100;
var old_y = 100;

var scroller = new Kinetic.Circle({
    x: old_x,
    y: old_y,
    radius: 10,
    fill: '#00F',
    stroke: 'black',
    strokeWidth: 4,
    draggable: true
});

scroller.on('dragmove', function(event){
    var pos = scroller.getAbsolutePosition();
    layer.move(pos.x - old_x, pos.y - old_y);
    old_x = pos.x;
    old_y = pos.y;
    layer.draw();
});

fixedLayer.add(scroller);

var layer = new Kinetic.Layer();
stage.add(layer);

var rect = new Kinetic.Rect({
    x: 10,
    y: 10,
    width: 50,
    height: 50,
    fill: '#0F0',
    stroke: 'black',
    strokeWidth: 4
});


rect.on('click', function(){
    rect.remove();
    layer.draw();
});

layer.add(rect);

layer.draw();
fixedLayer.draw();

这是一个错误还是我做错了什么?


当您使用拖动事件时,KineticJS 在顶部创建一个临时层,因此您的事件在拖动事件之后不会被注册dragmove.

只需添加另一个处理程序dragend像这样:

scroller.on('dragend', function(event){
    layer.moveToTop();
    layer.draw();
});

这是更新了小提琴 http://jsfiddle.net/aplus1/NY4QK/13/.

有关您遇到的问题的更多详细信息/解释,请检查以下内容:https://github.com/ericdrowell/KineticJS/issues/219 https://github.com/ericdrowell/KineticJS/issues/219

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从“dragmove”回调中移动图层后,事件丢失 的相关文章

  • javascript 正则表达式用于空格或

    我正在寻找一个用于空白的 javascript 正则表达式 我正在循环中检查几个不同的字符串 我需要找到其中有大空白的字符串 空白字符串构建在一个循环中 就像这样 请将此代码阅读为var whitespace nbsp 然后循环只是在其上连
  • 使用 AJAX 来回发送信息

    使用 post 你可以向服务器发送信息 但是当你需要从服务器接收信息时怎么办呢 信息如何从可以由 php 变量保存的方式变为可以由 javascript 变量保存的方式 反之亦然 这与您的问题更相关 http docs jquery com
  • 使用 HTML5 FileSystem API 将文件写入桌面

    我正在玩一下文件系统API http www html5rocks com en tutorials file filesystem 我发现了很多生成下载链接并让用户以 浏览器方式 下载文件的示例 我想知道两件事 有没有办法将fiddle中
  • javascript switch/case :比较类型吗? [复制]

    这个问题在这里已经有答案了 可能的重复 在 Javascript switch 语句中进行严格比较是否安全 https stackoverflow com questions 6989902 is it safe to assume str
  • Jest 中从未调用图像 onLoad 处理程序

    我正在尝试使用 Jest 测试将 dataUrl 加载到图像中 我正在使用 JSDOM 并按照说明添加resources usable 作为一个选项 如果我直接从 Node 运行该代码 则该代码可以工作 但是当我尝试在 Jest 中运行它时
  • Jqplot 中两个系列数据的不同颜色条

    我想知道如何在 Jqplot 中为两个系列制作不同的颜色条 如果我只有一个系列数据 它的工作原理如下图所示 红色和绿色基于其值 但是 如果我有两个系列数据 我无法为每个系列数据配置两个系列颜色 目前我只能做这个图 我希望两个系列图可以根据其
  • JS如何获取多维数组的最大深度?

    我有一个多维数组 我想知道它的最大深度 我发现了这个灵魂 但它不适用于对象数组 const getArrayDepth arr gt return Array isArray arr 1 Math max arr map getArrayD
  • Object.assign() - 奇怪的行为需要解释

    我有这个代码 function margeOptions options passedOptions options Object assign options passedOptions let passedOpts a true let
  • 为什么新行上的 return 语句不返回任何值? [复制]

    这个问题在这里已经有答案了 考虑以下情况 function func1 return hello world function func2 return hello world console log func1 console log f
  • 赋予 d3 序数轴标签与尺度名称不同

    我有一个序数scale具有不同值的某些标签 我想显示该比例的轴 其中轴标签与比例标签不同 我有这个代码 var width 1000 var height 600 var margins left 100 40 right 25 botto
  • jQuery UI 对话框使用 setTimeout 自动关闭

    我试图让对话框在打开后三秒自动关闭 我尝试过以下方法 setTimeout mydialog dialog close 3000 这是在上下文中 acknowledged dialog dialog height 140 modal tru
  • Google Maps JS Api - b.get 不是函数错误(isLocationOnEdge)

    我想检查我的路线上是否有标记 所以我尝试使用 isLocationOnEdge 但收到 TypeError b get 不是函数 错误 这是我的代码 我尝试了几次更改但无法解决问题 var directionsDisplay new goo
  • JQuery _renderItem 没有被调用

    我正在尝试使用 renderItem 函数创建自定义 ui menu item 元素 但经过可能尝试后 我什至无法调用该函数 自动完成功能正在工作 但就像 renderItem 函数不存在一样 这是我的脚本部分
  • 检测 JavaScript 中的焦点丢失

    我希望能够检测 JavaScript 中任意元素何时失去焦点 因此我可以构建一个类似于 jEdit 的内联编辑工具 我不能依赖 jQuery 来实现这个库 所以我需要一个本机方法来完成它 我查看了 onblur 这似乎是正确的事情 但 MD
  • 如何混淆或使 JavaScript 文件不可读?

    我的应用程序中有 JavaScript 脚本 其中包含 JavaScript 和 jQuery 函数 所有用户与我的应用程序的交互都是动态的 并且通过 jQuery 传递到应用程序 我意识到 当我在客户端运行我的应用程序时 客户端可以通过查
  • Niceedit本地上传图片失败

    我是这样称呼编辑的 new nicEditor buttonList bold italic underline upload iconsPath img nicedit png uploadURI http server com inte
  • 是否可以从 webpack 中的文件名中删除特殊字符?

    长话短说 我的资产文件名中不能包含某些字符 例如连字符 我没有运气通过解析 webpack 文档来弄清楚是否可以使用正则表达式或类似的东西重命名文件 这样我就可以从我无法控制源文件名的 3rd 方包中删除任何连字符 我的超级天真的例子是这样
  • router.navigate 使用查询参数 Angular 5

    我在使用查询参数路由到路由时遇到问题我有一个像这样的函数 goToLink link this router navigate link split 0 queryParams this sortParams link 和这个功能 sort
  • 在 HTML5 画布上创建颜色选择器

    如何在 HTML5 画布上绘制颜色选择器 一个基本的例子是使用getImageData http jsfiddle net eGjak 60 http jsfiddle net eGjak 60 var ctx cv get 0 getCo
  • 更改 CSS 样式表的选择器属性

    以下是我们传统上如何更改重复元素的样式 将样式应用到每个元素 function changeStyle selector prop val var elems document querySelectorAll selector Array

随机推荐

  • NoSQL 数据库中的全文搜索 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 这里有人有部署真正的在线系统的经验吗 该系统在任何 NoSQL 数据库中进行全文搜索 例如 全文搜索在 MongoDB Riak 和
  • PullToRefreshListView$InternalListViewSDK9 中的 IllegalStateException

    我在应用程序的两个活动中使用 PullToRefresh 库 我知道 这个库已被弃用 但它非常有用 它不仅可以处理来自顶部的刷新手势 还可以处理来自底部的刷新手势 但它有一个问题 应用程序很少因以下日志而崩溃 java lang Illeg
  • 如何在 Java 中格式化字符串

    原始问题 但如何格式化这样的字符串 第 1 步 共 2 步 通过使用 Java 替换变量 在 C 中这很容易 看一眼字符串格式 http download oracle com javase 6 docs api java lang Str
  • 将 float 转换或转换为 nvarchar?

    我需要从数据类型 float 的一列中进行选择 并将其作为 nvarchar 插入到另一列中 我尝试投射它 cast Column Name as nvarchar 50 结果是9 07235e 009而不是 10 位数字 电话号码 有谁知
  • Java 中覆盖方法的更广泛的参数类型

    下面的代码破坏了什么面向对象原则 不是 Java OO 原则 而是通用 OO 原则 class GeneralArg class Arg extends GeneralArg class A public void test Arg a c
  • 如何从数据库服务器插入带有时间戳的 MongoDB 文档

    在 Oracle 中 我可以简单地这样做 INSERT INTO myTable VALUES someValue SYSTIMESTAMP 这会将两个值插入到 myTable 中 其中之一是基于数据库服务器时间的时间戳 对于 MongoD
  • Grails 挂在命令行上

    我刚刚下载了 Grails 2 0 1 创建了一个新项目 然后尝试按照文档添加 mysql 连接器 但 Grails 在命令提示符下挂起 没有任何消息 我尝试以详细和堆栈跟踪模式执行 但它什么也没打印 我尝试清理并重新执行 但所有 grai
  • Jenkins Pipelines:如何从共享变量脚本使用 withCredentials()

    我想用一个withCredentials 块在共享变量 vars 脚本中而不是直接在 Jenkins 管道中 因为这是特定库的较低级别语义 并且根据具体情况可能需要也可能不需要 然而 withCredentials 或者 至少 它的签名 似
  • 如何在 OpenCV + Visual C++ 中测量对比度

    以前的问题是 如何在 OpenCV 中选择最佳对比度的图像 但根据 Rook 的建议 我正在更改它 我将在我的项目中使用 OpenCV Visual Studio 2010 我只是想知道 OpenCV 如何让这对我来说更容易 我从视频中提取
  • SQL Server - 缺少索引 - 什么会使用索引?

    我正在使用 SQL Server 2008 我们正在使用 DMV 来查找丢失的索引 然而 在创建新索引之前 我试图找出哪个 proc query 需要该索引 我想要获得最多的信息 以便我可以对我的索引做出明智的决定 有时 SQL Serve
  • 将 List 转换为分隔字符串列表 [重复]

    这个问题在这里已经有答案了 可能的重复 从 List 返回字符串的最优雅的方式 https stackoverflow com questions 1334072 most elegant way to return a string fr
  • OpenCV Android 使用最大轮廓的边缘创建新图像

    我能够检测图像中最大的正方形 矩形 绿色 但是 我想将图像中检测到的最大正方形 矩形转换为新图像 存储在新的 Mat 中 这是该函数的返回图像 其上有最大的矩形 正方形 http img153 imageshack us img153 93
  • NodeJS 从后台进程读取 stdin

    我有一个在 Ubuntu 12 04 LTS 下作为服务运行的节点进程 它在 etc init 下有一个配置文件 该系统在连接了条形码阅读器的无头 x86 路由器板上运行 我需要做的是能够读取来自条形码阅读器的输入 其行为类似于 USB 键
  • 在 .NET Core 中使用 SHA-1

    在 dotnet core 中对字符串进行哈希处理时 我得到了奇怪的结果 我发现了这个类似的问题 使用 ASP NET Core 计算 SHA1 https stackoverflow com questions 35363358 comp
  • sqlite,从另一个表中的列更新列

    我目前正在处理更新的查询table1 state从数据中table2 state基于两个表中的城市字段 换句话说 当表 1 和表 2 中的城市字段匹配时 用表 2 中的州更新表 1 我遇到的问题是 当没有城市匹配时 会随机添加一个州 例如爱
  • 真的需要通配符泛型吗?

    例如 public String add Set gt 这是一个列表的列表 该方法可以向其中添加不同组件类型的列表 public void foo List
  • 在后台脚本中设置间隔

    我正在为实时产品开发浏览器扩展 我有一个在manifest json 中设置了 persistent true 的背景页面 我使用的是v2 版本 我使用 setInterval 每秒不断地轮询服务器以获取新数据 后台脚本还会缓存迄今为止收集
  • 使用纯 R 通过 dbplyr 处理日期

    dbplyr 将 dplyr 和基本 R 命令转换为 SQL 以便开发人员可以编写 R 代码并在数据库中执行它 整洁宇宙参考 https dbplyr tidyverse org 在 R 中处理日期时 通常使用 lubridate 包 然而
  • JDK 11 + JUnit 5 + Jigsaw:Junit 无法运行“模块信息”测试

    我尝试在 Gradle 项目中使用 JUnit 5 compileJava and compileTestJava两者都成功了 但是test失败并显示奇怪的消息Could not execute test class module info
  • 从“dragmove”回调中移动图层后,事件丢失

    我有一个移动图层的滚动条 因此该图层在滚动条的 dragmove 回调中移动 这会导致所有绑定事件在移动的图层上断开连接 请看这个小提琴 http jsfiddle net NY4QK 10 http jsfiddle net NY4QK