Kline

本项目扒了某网站的K线插件做了一些封装和二次开发,使其更加便于使用和修改,方便后来的开发者. 修改主要涉及以下几个点:

使用 webpack 打包 css/images/html

使用 ES6 + Babel 对原有代码进行了拆分和重构

删除了一些不必要的逻辑

把源码中可配置的部分抽出来

添加了对 websocket(stomp over websocket) 连接方式的支持

增加对外接口及事件回调

Features

✅ 支持两种主题配色切换

✅ 支持简体中文,英文,繁体中文三种语言

✅ 可配置的时间聚合方式

✅ 支持多种画线工具

✅ 支持多种画图算法

✅ 支持深度图数据及最近成交数据展示

✅ 支持普通轮询和Websocket Over Stomp两种连接方式

ScreenShot!

Requirements

jquery

jquery.mousewheel

sockjs (仅stomp方式需要)

stomp (仅stomp方式需要)

Install & Load

安装

$ npm install kline

使用标签引入, 在HTML页面头部加入

OR RequireJS

require.config({

paths: {

"jquery": "../lib/jquery",

"jquery.mousewheel": "../lib/jquery.mousewheel",

"sockjs": "../lib/sockjs",

"stomp": "../lib/stomp",

"kline": "../js/kline"

},

shim: {

"jquery.mousewheel": {

deps: ["jquery"]

},

"kline": {

deps: ["jquery.mousewheel", "sockjs", "stomp"]

}

}

});

require(['kline'], function () {

// ...

});

OR CommonJS

var Kline = require('kline');

OR ES6

import Kline from 'kline';

在页面中加入

Examples

Poll(轮询)

var kline = new Kline({

element: "#kline_container",

symbol: "BTC",

symbolName: "比特币",

type: "poll", // poll/stomp

url: "http://127.0.0.1:8080/mock.json"

});

kline.draw();

Stomp Over Websocket

var kline = new Kline({

element: "#kline_container",

symbol: "BTC",

symbolName: "比特币",

type: "stomp", // poll/stomp

url: 'http://127.0.0.1:8088/socket',

subscribePath: "/kline/subscribe",

sendPath: "/kline/send"

});

kline.draw();

Support Options

参数名称

参数说明

默认值

element

容器元素选择器

#kline_container

width

宽度 (px)

1200

height

高度度 (px)

650

theme

主题 dark(暗色)/light(亮色)

dark

language

语言 zh-cn(简体中文)/en-us(英文)/zh-tw(繁体中文)

zh-cn

ranges

聚合选项 1w/1d/12h/6h/4h/2h/1h/30m/15m/5m/3m/1m/line (w:周, d:天, h:小时, m:分钟, line:分时数据)

["1w", "1d", "1h", "30m", "15m", "5m", "1m", "line"]

symbol

交易代号

symbolName

交易名称

type

连接类型 stomp/poll(轮询)

poll

url

请求地址

limit

分页大小

1000

intervalTime

请求间隔时间(ms)

3000

subscribePath

订阅地址 (仅stomp方式需要)

sendPath

发送地址 (仅stomp方式需要)

debug

是否开启调试模式 true/false

true

showTrade

是否显示行情侧边栏 true/false

true

enableSockjs

是否开启sockjs支持 true/false

true

reverseColor

是否反色, 默认绿涨红跌 true/false

false

stompClient

stomp 连接对象

null

Methods

draw()

画K线图

kline.draw();

resize(int width, int height)

设置画布大小

kline.resize(1200, 550);

setSymbol(string symbol, string symbolName)

设置交易品种

kline.setSymbol('usd/btc', 'USD/BTC');

setTheme(string style)

设置主题

kline.setTheme('dark'); // dark/light

setLanguage(string lang)

设置语言

kline.setLanguage('en-us'); // en-us/zh-ch/zh-tw

setShowTrade: function (isShow)

设置展示是否展示交易模块

kline.setShowTrade(false); // true/false

toggleTrade: function ()

切换展示是否展示交易模块

kline.toggleTrade();

setIntervalTime: function (intervalTime)

设置请求间隔时间(ms)

kline.setIntervalTime(5000);

connect: function ()

建立socket连接

kline.connect();

disconnect: function ()

断开socket连接

kline.disconnect();

pause: function ()

暂停请求数据

kline.pause();

resend: function ()

重新请求数据

kline.resend();

Events

事件函数

说明

onResize: function(width, height)

画布尺寸改变时触发

onLangChange: function(lang)

语言改变时触发

onSymbolChange: function(symbol, symbolName)

交易品种改变时触发

onThemeChange: function(theme)

主题改变时触发

onRangeChange: function(range)

聚合时间改变时触发

Example

var kline = new Kline({

element: "#kline_container",

symbol: "BTC",

symbolName: "比特币",

type: "poll", // poll/stomp

url: "http://127.0.0.1:8080/mock.json",

onResize: function(width, height) {

console.log("chart resized: " + width + " " + height);

}

});

Response

Example

{

"success": true,

"data": {

"lines": [

[

1.50790476E12,

99.30597249871,

99.30597249871,

99.30597249871,

99.30597249871,

66.9905449283

]

],

"trades": [

{

"amount": 0.02,

"price": 5798.79,

"tid": 373015085,

"time": 1508136949000,

"type": "buy"

}

],

"depths": {

"asks": [

[

500654.27,

0.5

]

],

"bids": [

[

5798.79,

0.013

]

]

}

}

}

响应参数说明:

lines: K线图, 依次是: 时间(ms), 开盘价, 最高价, 最低价, 收盘价, 成交量

depths(可选, 行情侧边栏显示): 深度图数据,  asks:一定比例的卖单列表, bids:一定比例的买单列表, 其中每项的值依次是 成交价, 成交量

trades(可选, 行情侧边栏显示): 最近成交记录,  amount: 成交量, price:单价, tid:订单ID, time:成交时间(ms), type:成交类型 buy/sell

k线图html5插件,Kline 一个JavaScript K线图插件相关推荐

  1. html模态框插件,如何使用JavaScript构建模态框插件

    作为一位Web开发人员而言,模态框(Modal)并不会陌生.就我个人而言,我更为熟悉的是怎么通过CSS来编写一个模态框以及怎么通过CSS给模态框添加一些动效.正好最近工作中也和Modal框杠上了.另外 ...

  2. 原生html js css绘制折现图,HTML5教程 Chart.js自定义提示折线图

    本篇教程探讨了HTML5教程 Chart.js自定义提示折线图,希望阅读本篇文章以后大家有所收获,帮助大家HTML5+CSS3从入门到精通 . < var randomScalingFactor ...

  3. 组织结构图插件_一个简单直接的组织结构图插件

    组织结构图插件 Vue-orgchart (vue-orgchart) It's a simple and direct organization chart plugin. Anytime you ...

  4. html5建筑图插件,13个JavaScript图表图形绘制插件

    由于绘制矢量图的不同技术愈发成熟以及现代浏览器所具备的更强大的计算能力等原因,目前网上出现了越来越多免费 的JavaScript图表和图形绘制解决方案.在本文中就将分享13个优秀实用的JavaScri ...

  5. [js插件]分享一个文章内容信息提示插件Colortip

    引用 项目中需要一个信息提示的功能,就上网找了一个插件,发现colortip实现比较简单,就定了这个插件. 实现过程 官网:http://tutorialzine.com/2010/07/colort ...

  6. html5点线动画,HTML5带音效的两点连线动画

    JavaScript 语言: JaveScriptBabelCoffeeScript 确定 (function() { var App = function() { this.el_svg = doc ...

  7. 10个强大的Javascript表单验证插件推荐

    创建一个JavaScript表单验证插件,可以说是一个繁琐的过程,涉及到初期设计.开发与测试等等环节.实际上一个优秀的程序员不仅是技术高手,也应该是善假于外物的.本文介绍了10个不错的JavaScri ...

  8. 特征图注意力_从数据结构到算法:图网络方法初探

    作者 | 朱梓豪 来源 | 机器之心 原文 | 从数据结构到算法:图网络方法初探 如果说 2019 年机器学习领域什么方向最火,那么必然有图神经网络的一席之地.其实早在很多年前,图神经网络就以图嵌入. ...

  9. 如果图G=V,E是哈密尔顿图,则它必然具备下述性质

    哥尼斯堡七桥问题是在寻找一条遍历图中所有边的简单路径,而哈密尔顿的周游世界问题则是在寻找一条遍历图中所有点的基本路径.在无向图G=<V,E>中,遍历G中每个顶点一次且仅一次的路径称为哈密尔 ...

最新文章

  1. cordova flie文件目录_Cordova - 访问www目录下文件(获取www文件夹路径)
  2. 【自动驾驶】17. pitch yaw roll是什么
  3. Winform中在使用Dock属性设计页面布局控件的顺序导致页面效果不同的问题
  4. 全新释放 | RealSight APM, 让客户的极致数字体验成为可能
  5. 敏捷无它,唯持续改进
  6. selinux --chcon命令
  7. 产品读书《缔造企鹅:产品经理是这样炼成的》
  8. android viewholder静态,使用内部viewHolder时声明为static的原因
  9. linux node安装菜鸟教程,Node.js 安装配置
  10. 自然人税收管理系统服务器,【轻松学个税申报】自然人税收管理系统客户端操作...
  11. 一文详解|增长那些事儿
  12. 企鹅F4手机外观设计有突破 配MTK6592八核处理器
  13. python颜值测试器
  14. 降了!京东物流全体员工公积金调整,由12%降到5%!
  15. 深度学习中的归一化方法BN,LN,IN,GN
  16. html打印预览出现重叠,html – 打印预览在每页上重复tfoot
  17. 拼多多店铺搜索相关问题,为什么新品上架搜索不到
  18. 516亿纳税背后的阿里社会学
  19. jsp实现页面跳转的几种常用方式
  20. Linux 5.4内核 exFAT格式U盘所需配置项

热门文章

  1. NENU 17级算法学习小组Round 3 0606
  2. 基于ssm家校通(学校+家庭)管理系统
  3. Linux NTFS 碎片整理,提高系统性能方法:NTFS文件格式、碎片整理和NTFS压缩
  4. 《管理的常识》:怎么做一个优秀的管理者?
  5. Spring源码深度解析(郝佳)-学习-jdk代理-cglib代理
  6. [附源码]SSM计算机毕业设计农产品溯源管理JAVA
  7. 自动遍历-Maxim
  8. 计算机网络基础概念ppt,1-1计算机网络基础概念.ppt
  9. 耗散结构-势-运动-哲学
  10. 28c512芯片_支持芯片