k线图html5插件,Kline 一个JavaScript K线图插件
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线图插件相关推荐
- html模态框插件,如何使用JavaScript构建模态框插件
作为一位Web开发人员而言,模态框(Modal)并不会陌生.就我个人而言,我更为熟悉的是怎么通过CSS来编写一个模态框以及怎么通过CSS给模态框添加一些动效.正好最近工作中也和Modal框杠上了.另外 ...
- 原生html js css绘制折现图,HTML5教程 Chart.js自定义提示折线图
本篇教程探讨了HTML5教程 Chart.js自定义提示折线图,希望阅读本篇文章以后大家有所收获,帮助大家HTML5+CSS3从入门到精通 . < var randomScalingFactor ...
- 组织结构图插件_一个简单直接的组织结构图插件
组织结构图插件 Vue-orgchart (vue-orgchart) It's a simple and direct organization chart plugin. Anytime you ...
- html5建筑图插件,13个JavaScript图表图形绘制插件
由于绘制矢量图的不同技术愈发成熟以及现代浏览器所具备的更强大的计算能力等原因,目前网上出现了越来越多免费 的JavaScript图表和图形绘制解决方案.在本文中就将分享13个优秀实用的JavaScri ...
- [js插件]分享一个文章内容信息提示插件Colortip
引用 项目中需要一个信息提示的功能,就上网找了一个插件,发现colortip实现比较简单,就定了这个插件. 实现过程 官网:http://tutorialzine.com/2010/07/colort ...
- html5点线动画,HTML5带音效的两点连线动画
JavaScript 语言: JaveScriptBabelCoffeeScript 确定 (function() { var App = function() { this.el_svg = doc ...
- 10个强大的Javascript表单验证插件推荐
创建一个JavaScript表单验证插件,可以说是一个繁琐的过程,涉及到初期设计.开发与测试等等环节.实际上一个优秀的程序员不仅是技术高手,也应该是善假于外物的.本文介绍了10个不错的JavaScri ...
- 特征图注意力_从数据结构到算法:图网络方法初探
作者 | 朱梓豪 来源 | 机器之心 原文 | 从数据结构到算法:图网络方法初探 如果说 2019 年机器学习领域什么方向最火,那么必然有图神经网络的一席之地.其实早在很多年前,图神经网络就以图嵌入. ...
- 如果图G=V,E是哈密尔顿图,则它必然具备下述性质
哥尼斯堡七桥问题是在寻找一条遍历图中所有边的简单路径,而哈密尔顿的周游世界问题则是在寻找一条遍历图中所有点的基本路径.在无向图G=<V,E>中,遍历G中每个顶点一次且仅一次的路径称为哈密尔 ...
最新文章
- cordova flie文件目录_Cordova - 访问www目录下文件(获取www文件夹路径)
- 【自动驾驶】17. pitch yaw roll是什么
- Winform中在使用Dock属性设计页面布局控件的顺序导致页面效果不同的问题
- 全新释放 | RealSight APM, 让客户的极致数字体验成为可能
- 敏捷无它,唯持续改进
- selinux --chcon命令
- 产品读书《缔造企鹅:产品经理是这样炼成的》
- android viewholder静态,使用内部viewHolder时声明为static的原因
- linux node安装菜鸟教程,Node.js 安装配置
- 自然人税收管理系统服务器,【轻松学个税申报】自然人税收管理系统客户端操作...
- 一文详解|增长那些事儿
- 企鹅F4手机外观设计有突破 配MTK6592八核处理器
- python颜值测试器
- 降了!京东物流全体员工公积金调整,由12%降到5%!
- 深度学习中的归一化方法BN,LN,IN,GN
- html打印预览出现重叠,html – 打印预览在每页上重复tfoot
- 拼多多店铺搜索相关问题,为什么新品上架搜索不到
- 516亿纳税背后的阿里社会学
- jsp实现页面跳转的几种常用方式
- Linux 5.4内核 exFAT格式U盘所需配置项