美文网首页
D3.js使用简书

D3.js使用简书

作者: 苦瓜来来 | 来源:发表于2020-07-13 14:32 被阅读0次

一、d3的含义

d3.js 是一个可以基于数据来操作文档的 JavaScript 库,可以帮你使用HTML CSS JS SVG Canvas 来展示数据,它结合强大的视图组件来驱动Dom操作.
d3引入的使用

  <script   src="https://d3js.org/d3.v5.min.js"></script>

也可以单独使用某个模块,比如单独使用d3-selection

<script src="https://d3js.org/d3-selection.v1.js"></script>  

可以模块化引入

import * as d3 from 'd3';

二、d3-selection(选择器)

Selections 允许强大的数据驱动文档对象模型(DOM):设置attributes,styles,HTML 或 text 内容,选择集的方法通常选择当前的选择当前的选择集或者新的选择集,因此允许进行链式调用。

d3.selectAll("p")
      .attr("class","fd-tag")
      .style("color","red");

等价于:

 const p = d3.selectAll("p");
 p.attr("class","fd-tag");
 p.style("color","red");

d3.select('selector')

选中符合条件的第一个元素,选择条件为 selector 字符串。如果没有元素被选中则返回空选择集,如果选择器有多个,那就返回匹配第一个选择集

d3.selectAll('selector')

选择所有与制定的selector匹配的元素,返回一个数组。如果没有元素被选中,则返回的空的选择集。

三、d3-zoom(缩放)

视图移动以及缩放是一种流行的交互技术 缩放行为通过d3-zoom模块来实现,缩放本身与DOM元素无关,可以用于SVG,HTML 或者 Canvas。

引入d3-zoom

  <script  src="htts://d3js.org.js/d3-zoom.v1.min.js"></script>
  或者
  npm install d3-zoom

d3.zoom()

创建一个新的缩放行为,并返回该行为。zoom既是一个对象又是一个函数,通过selection.call()来应用到元素本身上

selection.call(d3.zoom().on( "zoom" , zoomed))

事件绑定 .zoom 双击禁用缩放 以及 禁止滚动齿轮缩放

  selection.on("dblclick.zoom",null)
  selection.on("wheel.zoom",null)
selection.call( d3.zoom()
         // extent 即将当前视口范围设置为指定的数组[[x0,y0],[x1,y1]] 
        // x0,y0为视口的左上角,x1,y1为视口的右下角
        .extent([0,0],["画布的宽度","画布的高度"])
        // 缩放的范围[k0,k1]     k0 为缩放的最小范围,  k1为缩放的最大范围
        .scaleExtent([0.4,1])    // 缩放范围
        .on("zoom",()=>{
            // zoom事件跟缩放的回调函数   d3.event.transform 
            selection.attr( "transform" , d3.event.transform )
    })
 )

相关文章

  • D3.js使用简书

    一、d3的含义 d3.js 是一个可以基于数据来操作文档的 JavaScript 库,可以帮你使用HTML CSS...

  • D3.js + Canvas 绘制组织结构图

    D3.js + Canvas 绘制组织结构图 使用 D3.js 默认的 svg 渲染 D3默认的树状图画图使用的是...

  • 实验楼用户学习记录calendar-heatmap

    依赖d3.js 以及 moment.js 使用方法:

  • 技术分享——用D3.js框架V5版本入门基础

    技术分享——用D3.js框架V5版本入门基础 一、前言 ​ 在最近公司项目中,因为需求原因需要使用D3.js实...

  • iOS / Cookie的配置及使用

    iOS Cookie的配置及使用 - 简书 iOS HTTPCookie基本使用 - 简书

  • 不是使用简书 而是使用简书

    简书确实是个很神奇的app,她并不像知乎那样强调精英文化和学术氛围;也没有豆瓣的文青气质和归属感;更多的是扮演好...

  • 使用简书

    在朋友处看到了这个软件,说是挺好用,下了,慢慢试试。平时总会有胡思乱想的时候,也有想着点什么的冲动,就和简书交个朋友。

  • 简书使用

    1.标题1 1.1子标题 红色 加粗 ab 无序分类1 无序分类2 斜体

  • 使用简书

    看到了Markdown,来这里使用一下。 体会一下。顺便记录点学习内容。

  • 使用简书

    看到别人使用简书,也下来试试。 这是第一次用手机下载东西,很紧张,生怕带进病毒之类的。 没想到,下载很快,只是使用...

网友评论

      本文标题:D3.js使用简书

      本文链接:https://www.haomeiwen.com/subject/kjvacktx.html