记录d3.js 力导向图的平移缩放,类似地图导航点击某一项移动到当前位置

异步薄雾
• 阅读 2200
项目中有用到d3.js用于图结构的查询,
需求如下:
  • 右上角有个模糊搜索功能,查询出来的结果用列表展示
  • 点击列表的某一列,要求画布移动到当前选中的节点的位置,基于画布正中间
搜索出来的结果列表展示用的element-ui表格,前台进行分页,不依赖后台,下面记录一下svg的平移
    function translateSvg(d){
        //获取svg的父元素
        const parentBox = svg.node().parentElement
        //获取父元素的宽度
        const fullWidth = parentBox.clientWidth
        //获取父元素的高度
        const fullHeight = parentBox.clientHeight
        /*画布的移动,加上移动时平滑的动画效果
         *下面的fullWidth / 2 ,fullHeight / 2 基于画布的x,y,就是画布的正中间
         *scale就是画布的放大缩小,小于1是缩放,大于1是放大
         * d 的数据来源是点击表格的当前行的数据,就是你选中的几点的数据,取数据的x和y的坐标值
        */
        svg.transition()
           .duration(500)
           .call(zoom.transform, d3.zoomIdentity.translate(fullWidth / 2, fullHeight / 2).scale(1).translate(-d.x,-d.y))
    }
点赞
收藏
评论区
推荐文章
九路 九路
2年前
RecycleView滚动定位不准确问题研究
开发当中经常会遇到的产品需求,recycleview自动滚动到某一个位置。具体场景可能是如下:页面初始化之后自动自动跳转到某一个位置页面滚动之后要回到某一个位置为了展示完全需要recycleview做微小的
Stella981 Stella981
3年前
D3.js 力导向图的显示优化
!image(https://nebulablog.azureedge.net/nebulablog/d303.jpeg)D3.js作为一个前端,说到可视化除了听过D3.js(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fd3js.org%2F)的大名,
Stella981 Stella981
3年前
Solr搜索引擎 — 两种安装方式
!(http://pic.wblog.cn/F21D67BC6A7C498FACFF9F0E28C60A8A.png)常常在业务开发中会遇到大列表的查询需求或者按照各项条件搜索内容,一般的做法往往都是数据库直接搞定,但是到了一定的程度只有这类需求会带来巨大的开销,一个表格中涉及到了5张表的数据,搜索要求从其中3张表的不同字段做到模糊查询,
Wesley13 Wesley13
3年前
GoJS API学习
varnode{};node"key""节点Key";node"loc""00";//节点坐标node"text""节点名称";//添加节点通过按钮点击,添加新的节点到画布myDiagram.model.addNodeData(nod
Stella981 Stella981
3年前
Android控件——ListView之Adapter提供数据(其二)
上一节中一些列表集合数据到手机屏幕时,通常采用ListView组件ArrayAdapter.虽然它能为我们提供展示数据列表的能力,但是展示的项却不能定制,如果我们的项是由2个TextView组成的,它就无能为力了。项目中大部分的不单单是展示简单的项模板,更多时候,我们可以对项模板进行一些定制,来满足我们的需求,假设项模板需要展示2个TextView
Stella981 Stella981
3年前
ElasticSearch学习日志(一)
        搜索程序一般由索引链和搜索组件组成。     索引链主要是先检索原始内容,再根据原始内容来创建对应的文档,并对创建的文档进行索引;     搜索组件用于接收用户的查询请求并响应结果,一般由用户接口、构建可编程查询语句的方法、查询语句执行引擎及结果展示组件组成。 一、ES的基本概念      索引(I
Stella981 Stella981
3年前
D3.js力导向图中新增节点及新增关系连线示例
大家在使用D3.js中的力导向图时,基本都会遇到动态增加节点及连线的需求,这里记录一下我的实现方式。话不多说,先放代码:<!DOCTYPEhtml<htmllang"en"<head<metacharset"UTF8"<titleTitle</tit
鸿蒙小林 鸿蒙小林
1天前
《仿盒马》app开发技术分享-- 分类左侧列表(17)
技术栈Appgalleryconnect开发准备上一节我们实现了分类页面的顶部导航栏全选弹窗列表,并实现了跟顶部列表的点击选中联动效果,这一节我们要实现的功能是,分类模块的左侧列表,它同样也需要跟弹窗列表的点击,顶部列表的点击有联动的效果功能分析1.列表展
鸿蒙小林 鸿蒙小林
1天前
《仿盒马》app开发技术分享-- 地图选点(27)
技术栈Appgalleryconnect开发准备上一节我们实现了地图的简单展示,这一节我们要实现的内容是,根据展示的地图,实现当前定位功能,当前位置的poi地址功能,以及列表的展示,给地图添加标记,展示自己的当前定位功能分析要想实现这些功能,首先我们需要在
鸿蒙小林 鸿蒙小林
1天前
《仿盒马》app开发技术分享-- 旧物回收订单列表(43)
技术栈Appgalleryconnect开发准备上一节我们实现了订单的创建,并且成功吧数据提交到云数据库中,这一节我们实现的内容是展示我们提交的订单列表功能分析要实现订单列表的展示,首先我们要查询对应用户下的订单列表,查询出对应的订单列表后,展示出对应的数
鸿蒙小林 鸿蒙小林
1天前
《仿盒马》app开发技术分享-- 待发货兑换订单列表(76)
技术栈Appgalleryconnect开发准备上一节我们实现了兑换订单展示页面的框架,这一节我们要进行兑换订单的展示,在兑换订单提交后,默认的状态是待发货状态,我们用列表的方式展示出来功能分析进入页面时我们就要通过用户的userid去查询对应的订单,获取