npm 包 @ttlabs/time-graph 使用教程

简介

@ttlabs/time-graph 是一个基于 Canvas 的时间轴可视化库。它可以帮助开发者快速地生成带有时间轴的图表,支持缩放、拖动等交互操作,并且提供了丰富的配置选项。

安装

使用 npm 安装 @ttlabs/time-graph

--- ------- ------------------

使用

------ - --------- - ---- ---------------------

----- --------- - ------------------------------------------------
----- --------- - --- -------------------- -
  ----- -
    -
      ------ ------ ---
      ---------- --- ---------------------------------
      -------- --- ---------------------------------
    --
    -
      ------ ------ ---
      ---------- --- ---------------------------------
      -------- --- ---------------------------------
    --
    -- ---
  --
---

-------------------

以上代码将调用 TimeGraph 构造函数创建一个实例,传入容器元素和初始配置项。在配置项中,我们通过 data 属性传入了一个包含多个事件的数组。每个事件都包含 titlestartTimeendTime 三个属性,分别表示事件的标题、开始时间和结束时间。

调用 timeGraph.render() 方法即可将图表渲染到指定的容器中。

配置项

以下是 @ttlabs/time-graph 支持的配置选项:

  • data:包含事件数据的数组。
  • height:图表的高度,默认为 500
  • width:图表的宽度,默认为容器元素的宽度。
  • timeRange:时间轴的范围,由两个 Date 对象组成。
  • visibleTimeRange:时间轴上显示的时间范围,由两个 Date 对象组成,可通过缩放操作改变。
  • timeAxisTickSpacing:时间轴刻度之间的间隔,以毫秒为单位。
  • timeAxisTickFormat:时间轴刻度的格式化函数,用于将 Date 对象转换为显示在刻度上的文本。
  • verticalPadding:图表顶部和底部的空白区域的高度,用于显示标题等元素,默认为 50
  • horizontalPadding:图表左侧和右侧的空白区域的宽度,默认为 10
  • minZoomLevel:时间轴的最小缩放级别,默认为 0.01
  • maxZoomLevel:时间轴的最大缩放级别,默认为 100

交互操作

@ttlabs/time-graph 支持多种交互操作,包括缩放、拖动等。以下是常见的交互操作和触发方式:

  • 鼠标滚轮:缩放时间轴。
  • 鼠标左键拖动:拖动时间轴。

我们可以通过监听 zoompan 事件,获取缩放和拖动的信息:

----------------------------- ----------- ----------------- -- -
  ----------------- ------ ---------------
  -------------------- ---- ------ ----------------------
---

---------------------------- ------------------ -- -
  -------------------- ---- ------ ----------------------
---

示例应用

以下是一个使用 @ttlabs/time-graph 来展示 GitHub 项目的贡献图的示例:

------ - --------- - ---- ---------------------

----- -------------------- - ----- ---------- ----------- -- -
  ----- --- - ----------------------------------------------------------------------
  ----- -------- - ----- -----------
  ----- ---- - ----- ----------------

  ----- ------ - --- ------------
  ----- -------- - ---------------------------- -------------
  ----- ------------ - ---------------------------------------------

  ----- ---- - ---
  --------------------------- -- -
    ----- -------- - -------------------------------
    ----- ----- - --------------------------------
    ----- ---- - --- ---------------
    -----------
      ------ --------- ------------- -- -------------
      ---------- -----
      -------- -----
    ---
  ---

  ------ -----
--

----- ------------- - ----- ---------- ----------- -- -
  ----- --------- - ------------------------------------------------
  ----- ---- - ----- ------------------------------ ------------

  ----- --------- - --- -------------------- -
    -----
    ---------- -
      --- ---------------------------------
      --- ---------------------------------
    --
    ----------------- -
      --- ---------------------------------
      --- ---------------------------------
    --
    -------------------- - - -- - -- - -- - -----
    ------------------- ------ -- --------------------------
    ---------------- ----
    ------------- -----
    ------------- ---
  ---

  -------------------

  -- --- - ---- -- --- ----------
  ----- ---- - ----------------------------
  --------- - -----------------------------------------------
  ---------------- - ----------------------------
  ------------------------------------------ -----------
--

------------------------- ---------

以上代码将展示一个 @ttlabs/time-graph 组件,用于展示某个 GitHub 项目中的代码贡献情况。我们通过 getContributionsData 函数获取项目的贡献数据,传入 TimeGraph 构造函数中即可。在配置项中,我们将可见时间范围定为 2019 年 6 月,并将轴上的刻度分为一周一个间隔,方便用户进行查看和比较。同时,我们设置最小缩放级别为 0.01,最大缩放级别为 10,以支持更多的交互操作。

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/6005588e81e8991b448d5d20


猜你喜欢

  • npm 包 minpopup 使用教程

    简介 minpopup 是一款基于 jQuery 的轻量级弹窗插件,支持显示文本、图像、Iframe 以及自定义内容。该插件提供了多种配置选项,适用于各种弹窗场景。

    2 年前
  • npm 包 @promised/child_process 使用教程

    在 Node.js 中,通过 child_process 模块可以实现在 Node.js 应用程序中执行子进程的功能。但是,当需要在应用程序中同时执行多个子进程时,使用 child_process 可...

    2 年前
  • npm 包 justified-images 使用教程

    首先,让我们来看看什么是 justified-images 包。这个包是一个用于在网页上按照比例显示图片的工具,可以通过在父元素中指定图片大小和间距,自动计算每张图片的大小和位置,让图片能够完美地填充...

    2 年前
  • npm 包 v-events 使用教程

    在前端开发中,事件处理是一个非常重要的部分。而基于原生 JavaScript 对于事件的处理又略显麻烦。因为一旦你需要监听多种事件,你就需要编写大量的事件监听器代码。

    2 年前
  • npm 包 @nicolasparada/bodyparser-middleware 使用教程

    在前端开发过程中,处理请求时常常需要获取 HTTP 请求体。@nicolasparada/bodyparser-middleware 是一款 npm 包,它可以将 HTTP 请求体解析并映射到 req...

    2 年前
  • npm 包 nodejs-svn-git-diff 使用教程:比较 SVN 和 Git 代码差异

    介绍 nodejs-svn-git-diff 是一个 npm 包,旨在帮助开发人员比较 SVN 和 Git 代码之间的差异。该包使用了 Node.js 和其子进程模块。

    2 年前
  • npm 包 gulp-webpack-hmr-sass-boilerplate 使用教程

    在现代前端开发中,使用 gulp、webpack 和 sass 成为了非常普遍的工作流方式。同时,HMR(Hot Module Replacement,即热模块替换)也是一个非常有用的技术,它允许我们...

    2 年前
  • npm 包 flow-scroll 使用教程

    在前端开发中,实现页面滚动效果不仅需要使用 CSS 样式和 JavaScript,还需要依赖一些其他的工具。其中,npm 包 flow-scroll 就是一个非常实用的工具,它可以帮助我们快速地实现页...

    2 年前
  • React Bootstrap Typeahead IE11 兼容 npm 包使用教程

    前端开发中,我们常常需要使用到各种各样的框架和库来帮助我们更快、更好地开发。其中,React Bootstrap Typeahead 是一个非常优秀的自动完成组件,但是它默认不兼容 IE11,这对于某...

    2 年前
  • npm 包 react-draggable-mfma 使用教程

    简介 在前端开发中,实现拖拽效果是很常见的需求。而 react-draggable-mfma 是一个基于 React 实现的拖拽组件,它支持任意 DOM 元素的拖拽,并提供了各种拖拽事件的钩子函数,可...

    2 年前
  • npm 包 syncydink 使用教程

    什么是 syncydink syncydink 是一个基于 Node.js 的 npm 包,它是一个简单易用的文件同步工具,可以让我们轻松地同步本地文件夹与远程服务器上的文件夹。

    2 年前
  • npm 包 @ednagc/ull-shape-rectangle-ednagc 使用教程

    前言 在前端开发过程中,我们经常需要进行图形绘制。其中,矩形是最基本的几何图形之一。本文将介绍 @ednagc/ull-shape-rectangle-ednagc 这个 npm 包的使用方法,它可以...

    2 年前
  • npm 包 vue-slide-mini 使用教程

    前言 npm 是 Node.js 软件包管理器,允许您在项目中安装公共或私有软件包,以便轻松管理其依赖。 vue-slide-mini 是一个轻量级、易于使用的 Vue.js 幻灯片组件,可以帮助您快...

    2 年前
  • npm 包 @tkloht/react-bootstrap-typeahead 使用教程

    简介 @tkloht/react-bootstrap-typeahead 是一个优秀的前端组件,它使用了 React 和 Bootstrap,支持自动补全和多选,适用于多种场景,比如搜索、电商等等。

    2 年前
  • npm 包 gulp-less-glob 使用教程

    gulp-less-glob 是一个 gulp 插件,用于自动编译 less 文件。它具有以下优点: 支持 glob 语法,一次编译多个 less 文件 能够处理 less 文件中的 @import...

    2 年前
  • npm 包 electron-easy-spellcheck 使用教程

    在前端开发中,可以使用许多 npm 包来增强应用程序的功能。其中,electron-easy-spellcheck 就是一款非常有用的包,可以帮助我们实现拼写检查的功能。

    2 年前
  • npm 包 weex-dev-cli 使用教程

    随着移动互联网时代的到来,移动应用的开发变得越来越重要。与此同时,前端技术也在快速发展,前端开发工具日新月异。 weex-dev-cli 是一个 npm 包,可用于 weex 的开发、调试和打包。

    2 年前
  • npm 包 @kev_nz/npm-programmatic 使用教程

    在 Web 开发中,我们经常需要使用各种不同的 JavaScript 模块或库,而 npm 包管理器则是最常用的选择之一。其中,@kev_nz/npm-programmatic 是一个方便的 npm ...

    2 年前
  • npm 包 @trakout/wagner 使用教程

    前言 在前端工作中,包管理器已经成为了必不可少的工具之一。其中,npm 是前端应用中最常用的包管理器之一,具有简单易用、功能强大等优点。本文将会介绍利用 npm 包 @trakout/wagner 实...

    2 年前
  • npm 包 create-rest-ui-app 使用教程

    前言 在前端开发中,我们经常使用各种框架和工具来提高开发效率。而 create-rest-ui-app 就是其中一个非常有用的工具。它可以快速生成基于 REST API 的 React 应用程序的基本...

    2 年前

相关推荐

    暂无文章