- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
默认情况下,当您在 D3 中创建新的缩放行为时,它会映射鼠标滚轮来控制缩放级别。如果图表大于图表区域,您还可以单击并拖动来平移图表。我想重新映射鼠标滚轮手势以在垂直轴上平移(鼠标滚轮向上平移,鼠标滚轮向下平移)。有人知道如何实现这一目标吗?
最佳答案
好的,我们开始吧:基于Lars' comment ,我们可以为鼠标滚轮事件指定事件处理程序。如answer所示,我们首先将 wheel.zoom
事件映射到自定义处理程序 pan
selection.call(zoomer)
.on("wheel.zoom",pan) // handler function for mousewheel zoom
其次,我们需要定义平移手势,它基本上是在 x 和/或 y 方向上的平移
。
function pan() {
svg.attr("transform", "translate(" + [dx,dy] + ")");
}
我们还需要量化两个方向的移动,并将其与鼠标滚轮移动相关联。通过检查MouseWheel
事件的详细信息,我们发现两个有用的属性deltaX和deltaY,指示鼠标滚轮在每个方向上移动了多少。 p>
最终的pan
函数如下
function pan() {
current_translate = d3.transform(svg.attr("transform")).translate;
dx = d3.event.wheelDeltaX + current_translate[0];
dy = d3.event.wheelDeltaY + current_translate[1];
svg.attr("transform", "translate(" + [dx,dy] + ")");
d3.event.stopPropagation();
}
这是一个working fiddle和 bl.ock还修改迈克的 geometric zoom example .
浏览器之间的鼠标滚轮事件似乎有所不同。对于 Safari 和 Firefox 支持,您需要添加以下内容:
selection.call(zoomer)
.on("wheel.zoom",pan)
.on("mousewheel.zoom", pan)
.on("DOMMouseScroll.zoom", pan)
此外,wheelDelta
的解释在 Firefox 中是相反的。 wheelDelta
可以通过 this function 修复
function crossWheelDelta()
// cross-browser wheel delta
var e = window.event || e; // old IE support
return Math.max(-1, Math.min(1, (e.wheelDelta || -e.detail)));
}
关于javascript - D3 : remap mousewheel to be panning gesture instead of zoom gesture,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28603796/
我正在开发一个应用程序,我在其中使用了平移手势和滑动手势。因此,每次我执行滑动手势时,总是会调用平移手势中的方法,而不会调用滑动手势方法。 所有手势方法之间是否有优先级? 最佳答案 您可以通过实现UI
默认情况下,当您在 D3 中创建新的缩放行为时,它会映射鼠标滚轮来控制缩放级别。如果图表大于图表区域,您还可以单击并拖动来平移图表。我想重新映射鼠标滚轮手势以在垂直轴上平移(鼠标滚轮向上平移,鼠标滚轮
我认为有一些算法可以评估绘制符号和预期符号之间的差异,或者类似的东西。任何帮助将不胜感激 :)) 最佳答案 您可以实现一个简单的神经网络来识别手写数字。最简单的实现类型是通过反向传播训练的前馈网络(它
在iPhone App中如何实现摇动手势? 请帮忙并提出建议。 谢谢 最佳答案 如果您的 ViewController 启用第一响应者 [self becomeFirstResponder] 并实现m
在多点触控环境中,手势识别是如何工作的?使用哪些数学方法或算法来识别或拒绝可能手势的数据? 我制作了一些反光手套和一个红外 LED 阵列,以及一个 Wii Remote 。 Wii Remote 进行
我正在尝试使用以下库通过我的 lit-element 实现手势:https://github.com/composi/gestures 在我的文件顶部,我有以下内容: import { gesture
我在 flutter 打中使用“矩阵手势检测器”小部件。我设法重置了缩放比例,但是下次放大时,它从上一个缩放位置开始。我找不到解决此问题的解决方案。 有人可以告诉我从原始位置开始的方法吗 这是我的代码
我们目前正在检查我们的应用程序是否与即将推出的 iPhone X 及其新外形和手势兼容。我们注意到有关切换到主屏幕手势的问题,向上滑动实际上会触发位于屏幕底部的按钮上的 Action 。 在我们的例子
我使用UICollectionViewCell设计了一个XIB,在该自定义单元中,我有一个UILabel已启用其用户交互功能。 当我设计viewcontroller时,在我的cell中,这是我的代码。
我尝试检测 android 中的手势,但它一直崩溃,我在创建构造函数时遇到问题,我在使用类方面不是那么先进 这是 GestureDetector 类,包括 OnGestureListener 的所有必
我是 android 的初学者,我正在学习 newboston 教程。我发现了这段用于手势识别的代码。 protected void onCreate(Bundle savedInstanceStat
在我的应用程序中,我有一个位于另一个 View 之上的 View 。用户可以向右滑动顶 View ,使其淡出并“淡入”后 View 。 当用户向右平移并松手时,动画开始,它应该从当前位置平移到新的屏幕
我有一个小问题 em 卡住了..我有一个自定义 UITableViewCell,在它的 textView 上我添加了 2 个手势, UITapGesture 和 UISwipeGesture..点击手
我正在尝试从 SwiftUI 的左侧识别 EdgePan。我知道有一些手势,但无法将它们应用到整个屏幕。 (尝试使用 DragGesture)。是否可以在 SwiftUI 中实现 EdgePan?或者
在开发应用程序时,我遇到了平移手势识别器过多的问题。我的第一个平移手势识别器位于 RecipeSearchVC 的父级 MainViewController 上。这个手势识别器向左或向右滑动整个 Vi
我正在尝试创建一个应用程序来复制 Apple 的照片应用程序 (iPhone) 的缩放、平移和滚动照片图像的功能。 (我也想在查看 pdf 和其他文档时使用相同的控件。)我得到了点击手势来显示/隐藏导
我是 Swift 的初学者,正在尝试向我的 UIView 添加滑动手势识别器。我已将渐变 CALayer 插入到索引 0 以具有渐变背景。 我的问题是: 左右滑动手势可以正常工作,但向下滑动手势不起作
目前我在带有 Customscrollview 的列中使用 photoview(类似于 flutter 的交互式查看器)小部件。所以基本上我有一个应用程序链接 instagram 提要。然而,捏合缩放
在 WP8 应用程序中,我有一个 ListBox 绑定(bind)到一个带有网格的 ItemsSource,因为它是 ItemsPanelTemplate。根据用户选择,网格的布局可能每次都不同(不同
我尝试了几个具有不同 SDK 版本(2.1 和 2.3)的模拟器,但都没有安装 Gestures Builder 应用程序。 有什么想法吗? 最佳答案 我必须安装它。 在 Eclipse 中 文件->
我是一名优秀的程序员,十分优秀!