d3.js zoom 事件

冷色系微风爱丶

d3.js v3  英文文档 https://github.com/d3/d3-3.x-api-reference/blob/master/Zoom-Behavior.md

d3.js v4 中文文档  https://d3js.org.cn/document/d3-zoom/#zoom-transforms

d3.behavior.zoom() 调用d3.js 的zoom 事件

 
  1. var zoom = d3.behavior.zoom();

  2. selection.call(zoom);

zoom.scaleExtent([extent]) 这个是鼠标缩放的距离 [0.001,10000]
zoom.scaleExtent([0.001, 10000])

zoom.on('zoomstart')   zoom 事件执行前 只用过 鼠标变小手 但是有bug  在缩放的时候小手也变。

selection.on(".zoomstart", null);

zoom.on('zoom')  执行zoom 事件

selection.on(".zoom", null);

zoom.on('zoomend')  zoom 事件执行后

selection.on(".zoomend", null);

_this.zoom.translate([100, 20])  zoom 事件 translate 默认位置  保持zoom事件 与 要执行zoom 事件元素的位置一致

zoom.translate([100, 20])

_this.zoom.scale([1])  这个是 缩放 scale

zoom.scale([0.5])

要执行zoom 事件的元素 .call(zoom) 调用zoom 事件

 
  1. selection

  2. .call(zoom)

要执行zoom 事件的元素 .on('dblclick.zoom', null) 禁用双击放大

 
  1. selection

  2. .call(zoom)

  3. .on("dblclick.zoom", null);

要执行zoom 事件的元素 .on('wheel.zoom', null)   单独将缩放的滚轮事件取消

 
  1. selection

  2. .call(zoom)

  3. .on("wheel.zoom", null);

_this.zoom = d3.behavior.zoom().scaleExtent([0.001, 10000]).on('zoomstart', () => { // zoom 事件发生前 将变小手加给svg 而不是g g不接受事件d3.select('svg.svgTree').style('cursor', 'pointer')}).on('zoom', function() {_this.inner.attr('transform','translate(' + d3.event.translate + ')' +'scale(' + d3.event.scale + ')')}).on('zoomend', () => { // zoom 事件发生前d3.select('svg.svgTree').style('cursor', 'default')})_this.inner = d3.select('.tree').append('svg')
.attr('class', 'svgTree')
.call(_this.zoom)
.append('g')
.style('cursor', 'pointer')// .attr('transform', 'translate(' + 200 + ', ' + 20 + ')')
// _this.zoom.translate([200, 20])
.attr('transform', 'translate(' + _this.width / 3 + ', ' + _this.height / 8 + '), scale(' + 1 + ')')
_this.zoom.translate([_this.width / 3, _this.height / 8])
_this.zoom.scale([1])

d3.js zoom 事件相关推荐

  1. 【项目技术点总结之一】vue集成d3.js利用svg加载图片实现缩放拖拽功能

    [项目技术点总结之一]vue集成d3.js利用svg加载图片实现缩放拖拽功能 前言 概述 技术介绍 实现过程 插件安装 引用组件 初始化组件 实现效果 简单理解 使用d3创建一个svg 在svg中提添 ...

  2. d3.js一个面积图的案例(包含brush与zoom)

    d3.js 一个面积图的案例(包含brush与zoom) 参考链接:http://www.a4z.cn/pui/ant-admin.html#/simple-area-chart const rawD ...

  3. D3.js实现力导向图(Dray和Zoom)

    今天遇到个问题就是把json(里面nodes和edges属性)文件通过D3.js展示出来,下午终于弄出来了,写篇博客记录一下. 先展示一下效果图: 放大后是这个效果: 什么是力导向图 D3.js官网: ...

  4. html树图制作,d3.js制作树结构图

    一.运行效果 说明:使用鼠标滚轮放大缩小,点解节点可以收缩打开子节点,按住鼠标左键拖动可移动整体图形. 二.实现过程 1.编写html和css结构 .node { ursor: pointer; } ...

  5. 数据可视化利器D3.js教程 API

    汇智网 http://xc.hubwiz.com/course/54fd40cfe564e50d50dcf284 D3.js 入门系列 - 选择元素和绑定数据 https://www.cnblogs. ...

  6. D3.js树图tree 组织机构分布图(基于vue)

    @[TOC](D3.js树图tree 组织机构分布图(基于vue)) 背景 前段时间接到一个需求,仿照企业查查->企业族谱 使用d3画出企业关系树图.这也是本人第一次接触d3.js,总体来说就是 ...

  7. d3.js操作svg

    最近有个需求需要用d3来操作svg文件实现svg的缩放及拖拽,同时可以在svg上打点,并对点位进行拖拽,记录下实现过程. d3版本用的是d3.v2.js 具体代码如下: /**svg拖拽和缩放*.sc ...

  8. 基于vue的组织架构树组件_Vue组件基于D3.js布局显示树

    基于vue的组织架构树组件 Vue.D3.tree (Vue.D3.tree) Update documentationVue components to display graphics based ...

  9. 知识图谱可视化vue.js + d3.js

    Github 前端 vue.js + d3.js. 需求 上部区域 展示所有的概念类别.以及画布内他们的个数 展示所有关系类别,以及画布内他们的个数 显示所有的概念场景(scenes 字段).关系场景 ...

最新文章

  1. js中的true,false盲点
  2. 山西五台警方通报“男子强拽女学生”:嫌疑人被刑拘
  3. Linux系统管理01
  4. IPO与上市的关系?
  5. js向服务器发送信息,Angularjs向服务器发送请求
  6. NGUI EventDelagate事件委托
  7. atoi函数_每日一道 LeetCode (50):字符串转换整数 (atoi)
  8. linux系统需要备份吗,准备好了吗?请备份你的Linux系统
  9. Anaconda安装Tensorflow环境
  10. hadoop--HDFS_DataNode工作机制
  11. ASV2011新功能逐个数
  12. 一文读懂-Impala
  13. MySQL常用系统表
  14. at()函数遍历图像
  15. 小米MAX Root,第三方REC,XP框架刷入
  16. 关于使用VS2015编译项目时出现LNK1112 module machine type 'x64' conflicts with target machine type 'X86'
  17. 应用程序操作word文件报“RPC服务器不可用,HRESULT:0x800706BA”
  18. idea 一次启动多服务配置
  19. 结合自己经历的一场机器人省赛浅谈如何学习单片机
  20. linux man命令如何翻页,Linux中man命令

热门文章

  1. android省市区 简书,中国省市区脚本
  2. 打开Dev c++出现could not open language file English.lng
  3. 无限互联iOS学习资料之UI高级(网络与多线程)视频教程
  4. OCR财务报表识别方案
  5. 谷歌给应届毕业生的八条建议
  6. 集美大学计算机主要学什么,集美大学计算机科学与技术专业课程教学大纲
  7. 【爬虫学习】Python登录微博并抓取微博热点信息
  8. 光缆旋转传输器/光纤滑环(LZ-M40X)在大型堆取料机上的应用
  9. 在Windows上安装Docker Toolbox
  10. VirtualBox 中运行 CentOS 7 鼠标切换