在D3.js中取消注册缩放侦听器并恢复滚动功能

 changeverything77_262 发布于 2023-01-18 21:34

我现在正在工作D3.js. 这是为我的svg标记注册缩放监听器的代码

var zoomListener = d3.behavior.zoom().scaleExtent([0.1, 3]).on("zoom", zoom);
function zoom() {
  vis.attr("transform", "translate(" + d3.event.translate + ")scale(" + d3.event.scale + ")");
}
svg.call(zoomListener)

现在,当我在svg元素上滚动鼠标时,它会被缩放.但是当我解开像这样的缩放事件时

zoomListener.on("zoom", null);

只有svg没有缩放,但是当鼠标悬停在svg元素上时我无法滚动页面.

如何取消绑定缩放侦听器并恢复鼠标的滚动功能?谢谢!

1 个回答
  • 要完全禁用缩放行为,您需要取消注册已在其调用的元素上安装的所有事件处理程序:

    svg.on("mousedown.zoom", null);
    svg.on("mousemove.zoom", null);
    svg.on("dblclick.zoom", null);
    svg.on("touchstart.zoom", null);
    svg.on("wheel.zoom", null);
    svg.on("mousewheel.zoom", null);
    svg.on("MozMousePixelScroll.zoom", null);
    

    2023-01-18 21:44 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有