HQChart使用教程97-K线X轴滚动条

HQChart使用教程97-K线X轴滚动条

  • 效果图
  • 创建步骤
    • 1. 创建滚动条div
    • 2. 初始化滚动条实例
    • 3. 配置滚动条属性
    • 4. 创建滚动条
    • 5. K线图和滚动条绑定
    • 6. 滚动条显示位置
  • 完整示例
  • HQChart代码地址

效果图

在这里插入图片描述
示例地址:https://jones2000.github.io/HQChart/webhqchart.demo/samples/kline_scrrollbar.html

创建步骤

1. 创建滚动条div

滚动条是一个独立的画布, 所有需要新建一个新的div

<body><div id="kline"></div><div id="kscrollbar"></div>   <!-- K线滚动条div -->
...........................

2. 初始化滚动条实例

this.Scrollbar=JSScrollBarChart.Init(document.getElementById('kscrollbar'))

3. 配置滚动条属性

//一下是滚动条option里包含的属性
this.ScrollbarOption=
{Border: //边框{Left:50,         //左边间距Right:50,       //右边间距Bottom:25,      //底部间距Top:1,         //顶部间距AutoLeft:true,AutoRight:true},OnCreatedCallback:null, //滚动条创建完成以后回调DelayDragFrequency:50,  //拖动延时处理毫秒
}

4. 创建滚动条

通过setoption来创建滚动条

this.Create=function()
{
....this.Scrollbar.SetOption(this.ScrollbarOption);
......
}

5. K线图和滚动条绑定

在创建完K线图和滚动条以后需要互相绑定,这样两个图形才能互相联动.
通过OnCreatedCallback创建完成回调函数来完成绑定

 this.Create=function()  //创建图形
{this.ScrollbarOption.OnCreatedCallback=(chart)=> { this.OnCreateScrollBar(chart); }this.Scrollbar.SetOption(this.ScrollbarOption);......this.Option.OnCreatedCallback=(chart)=> { this.OnCreateHQChart(chart); }this.Chart.SetOption(this.Option);  //设置K线配置
}this.OnCreateHQChart=function(chart){chart.ScrollBar=this.Scrollbar;}this.OnCreateScrollBar=function(chart){chart.HQChart=this.Chart;}

6. 滚动条显示位置


this.Create=function()  //创建图形
{......var self=this;$(window).resize(function() { self.OnSize( ); });    //绑定窗口大小变化事件.......
}this.OnSize=function(option)  //自适应大小调整
{var height= $(window).height()-150;var width = $(window).width();this.DivKLine.style.top='0px';this.DivKLine.style.left='0px';this.DivKLine.style.width=width+'px';this.DivKLine.style.height=height+'px';this.Chart.OnSize(option);this.DivScrollBar.style.width=width+'px';this.DivScrollBar.style.height='100px';	//高度100的滚动条this.Scrollbar.OnSize(option);}

完整示例

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">  
<head>  
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  <title>K线滚动条</title>  <!-- 加载资源 --><link rel="stylesheet" href="../jscommon/umychart.resource/css/tools.css" /><link rel="stylesheet" href="../jscommon/umychart.resource/font/iconfont.css" />
</head>  
<body><div id="kline"></div><div id="kscrollbar"></div><div><span id='button_1' class="btn-style">切换股票</span><span id='button_3' class="btn-style">窗口个数</span><span id='button_4' class="btn-style">叠加指标</span><span id='button_5' class="btn-style">切换指标</span><span id='button_6' class="btn-style">切换自定义指标</span><span id='button_7' class="btn-style">RSI</span><span id='button_8' class="btn-style">移动指标[]</span><span id='button_9' class="btn-style" >移动指标[]</span><span id='button_10' class="btn-style">移动指标[新窗口]</span><span id='button_11' class="btn-style">多语言</span></div><script src="../jscommon/umychart.resource/js/jquery.min.js"></script><script src='../jscommon/umychart.console.js'></script>     <!-- 日志输出 --><script src="../jscommon/umychart.network.js"></script>     <!-- 网络请求分装 --><script src="../jscommon/umychart.js"></script>             <!-- K线图形 --><script src="../jscommon/umychart.complier.js"></script>    <!-- 麦语言解析执行器 --><script src="../jscommon/umychart.index.data.js"></script>  <!-- 基础指标库 --><script src="../jscommon/umychart.style.js"></script>       <!-- 白色风格和黑色风格配置信息 --><script src="../jscommon/umychart.scrollbar.js"></script>   <!-- 滚动条 --><script src="../jscommon/umychart.NetworkFilterTest.js"></script><script>MARKET_SUFFIX_NAME.GetMarketStatus = function (symbol) { return 2; }//简单的把K线控件封装下function KLineChart(divKLine, divScrollBar){this.DivKLine=divKLine;this.Chart=JSChart.Init(divKLine);   //把K线图绑定到一个Div上this.DivScrollBar=divScrollBar;this.Scrollbar=JSScrollBarChart.Init(divScrollBar)//K线配置信息this.Option= {Type:'历史K线图',   //创建图形类型//Type:'历史K线图横屏',//EnableBorderDrag:false,Windows: //窗口指标[{Index:"MA" , OverlayIndexType:{ Position:1, LineSpace:3 }, Overlay:true , Export:true, IndexParamSpace:15, IndexTitleSpace:15},//{Index:"OX", Args:[ { Name:'Reversal', Value:3 } ] }, {Index:"MACD",OverlayIndexType:{ Position:1, LineSpace:3 }},{Index:"VOL", OverlayIndexType:{ Position:1, LineSpace:3 }},], OverlayIndex:[// { Index:'两融余额', Windows:1 ,Args:[ { Name:'N', Value:5} ] , ShowRightText:false},// {Index:'MA', Windows:0 , IsShareY:true, ShowRightText:true },//{Index:'RSI', Windows:0, ShowRightText:true },//{ Index:'BOLL', Windows:0, ShowRightText:true,IsShareY:true, ShowToolbar:true },//{Windows:0, IndexName:"指标ID", Name:"自定义指标", Script:"DRAWTEXT(CLOSE<OPEN,H,14),VALIGN2,ALIGN1,YMOVE(-10), XMOVE(5);", Identify:"guid_66990",ShowRightText:true,IsShareY:true }//{Index:'MA5', Windows:1 ,ShowRightText:true}//{Index:"VOL_OVERLAY", Windows:0 },],  //叠加指标//OverlayIndexFrameWidth:1,//DragDownload: { Day:{ Enable:true } , Minute:{ Enable:true }}, EnableYDrag:{Right:true,Left:true,},Symbol:"000001.sh",IsAutoUpdate:false,       //是自动更新数据AutoUpdateFrequency:10000,   //数据更新频率SplashTitle:'加载数据中......',IsShowRightMenu:true,          //右键菜单//CorssCursorTouchEnd:true,//IsClickShowCorssCursor:true,//IsCorssOnlyDrawKLine:true,CtrlMoveStep:10,EnableVerifyRecvData:true,CorssCursorInfo: { Right:2, DateFormatType:3, HPenType:1, VPenType:1 ,VLineType:0,RightButton:{ Enable:true }, IsShowCorss:true, PriceFormatType:0, DataFormatType:0 },EnableZoomIndexWindow:true,KLine:  //K线设置{DragMode:1,                 //拖拽模式 0=禁止拖拽 1=数据拖拽 2=区间选择Right:0,                    //复权 0 不复权 1 前复权 2 后复权Period:0,                   //周期 0 日线 1 周线 2 月线 3 年线 MaxRequestDataCount:2000,   //数据个数MaxRequestMinuteDayCount:5, //分钟数据获取几天数据  默认取5天数据PageSize:30,               //一屏显示多少数据//Info:["互动易","大宗交易",'龙虎榜',"调研","业绩预告","公告"],       //信息地雷//Info:["公告"], IsShowTooltip:true,                 //是否显示K线提示信息DrawType:0,      //K线类型 0=实心K线柱子 1=收盘价线 2=美国线 3=空心K线柱子 4=收盘价面积图//FirstShowDate:20161201,KLineDoubleClick:false, //禁止双击弹框RightSpaceCount:5,ZoomType:0,//DataWidth:5ShowKLine:true,},StepPixel:0,IsDrawPictureXY:true,SelectedChart:{ EnableSelected: true, EnableMoveOn:true },EnableIndexChartDrag:true,KLineTitle: //标题设置{IsShowName:true,       //不显示股票名称IsShowSettingInfo:true //不显示周期/复权},EnableYDrag:{Right:true,Left:true,},Border: //边框{Left:50,         //左边间距Right:90,       //右边间距Bottom:25,      //底部间距Top:25,         //顶部间距AutoLeft:{ Blank:10, MinWidth:30 },AutoRight:{ Blank:5, MinWidth:40 },},Frame:  //子框架设置[{SplitCount:6,StringFormat:0, IsShowLeftText:true,Custom:[{ Type:0,Position:'right',LineType:1 //CountDown:true //PositionEx:1,},{ Type:2,Position:'right',LineType:-1 //CountDown:true //PositionEx:1,},{ Type:3,Position:'right',LineType:-1, //CountDown:true //PositionEx:1,},{ Type:1,Position:'right',LineType:1, Data:[{ Value:7.22, Color:"rgb(50,100,100)", TextColor:"rgb(100,0,0)", Text:[{Text:"第1行"}, {Text:"第2行"}]}]},]},{ SplitCount:5, IsShowLeftText:false, IsShowXLine:true,Custom:[{ Type:2,Position:'right',LineType:-1 //CountDown:true //PositionEx:1,}]},{Custom:[{ Type:2,Position:'right',LineType:-1 //CountDown:true //PositionEx:1,}]}],ExtendChart:    //扩展图形[//{Name:'KLineTooltip' },  //手机端tooltip//{Name:"FrameSplitPaint", LineColor:"rgb(200,0,0)" }],Overlay:[//{Symbol:'399300.sz', DrawType:1, Color:'rgb(0,0,255)'},//{ Symbol:'600999.sh' }],};this.ScrollbarOption={Border: //边框{Left:50,         //左边间距Right:50,       //右边间距Bottom:25,      //底部间距Top:1,         //顶部间距AutoLeft:true,AutoRight:true},DelayDragFrequency:50,}this.Create=function()  //创建图形{var self=this;//$(window).resize(function() { self.OnSize( {Type:1} ); });    //绑定窗口大小变化事件$(window).resize(function() { self.OnSize( ); });    //绑定窗口大小变化事件var blackStyle=HQChartStyle.GetStyleConfig(STYLE_TYPE_ID.BLACK_ID); //读取黑色风格配置//blackStyle.DRAWICON={ MinSize:20 , MaxSize:60};blackStyle.DrawPicture.PointType=1;JSChart.SetStyle(blackStyle);this.DivKLine.style.backgroundColor=blackStyle.BGColor; //设置最外面的div背景this.DivScrollBar.style.backgroundColor=blackStyle.BGColor; //设置最外面的div背景//JSChart.GetResource().FrameLogo.Text=null;JSChart.GetResource().ToolbarButtonStyle=1;this.OnSize();  //让K线全屏this.ScrollbarOption.OnCreatedCallback=(chart)=> { this.OnCreateScrollBar(chart); }this.Scrollbar.SetOption(this.ScrollbarOption);this.Option.NetworkFilter=(data, callback)=>{ this.NetworkFilter(data, callback); }this.Option.OnCreatedCallback=(chart)=> { this.OnCreateHQChart(chart); }this.Chart.SetOption(this.Option);  //设置K线配置}this.NetworkFilter=function(data, callback){console.log('[NetworkFilter] data', data);HQData.NetworkFilter(data, callback);}this.OnSize=function(option)  //自适应大小调整{var height= $(window).height()-150;var width = $(window).width();//width=50000;this.DivKLine.style.top='0px';this.DivKLine.style.left='0px';this.DivKLine.style.width=width+'px';this.DivKLine.style.height=height+'px';this.Chart.OnSize(option);this.DivScrollBar.style.width=width+'px';this.DivScrollBar.style.height='100px';this.Scrollbar.OnSize(option);}this.ChangeSymbol=function(symbol){this.Chart.ChangeSymbol(symbol);}this.OnCreateHQChart=function(chart){chart.ScrollBar=this.Scrollbar;}this.OnCreateScrollBar=function(chart){chart.HQChart=this.Chart;}}$(function () {var klineControl=new KLineChart(document.getElementById('kline'),document.getElementById('kscrollbar'));klineControl.Create();$("#button_1").click(function() { klineControl.ChangeSymbol("000001.sz"); } );})</script>  
</body>  
</html><style>#kline
{width: 900px;height:400px;position: relative;/*margin-top: 100px;*/
}.btn-style
{padding: 3px 8px;border: 1px solid #ececec;border-radius: 5px;background-color: #f5f5f5;cursor: pointer;
}</style>

HQChart代码地址

地址:github.com/jones2000/HQChart

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/175272.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

生产级 React 框架介绍

文章目录 生产级 React 框架生产级 React 框架Next.jsRemixGatsbyExpo 如何选择生产级 React 框架 生产级 React 框架 React 是一个流行的 JavaScript 框架&#xff0c;用于构建用户界面。React 框架可以帮助你快速构建高质量的 React 应用&#xff0c;但并不是所有的 React 框…

【uniapp】JavaScript基础学习-20231027

今天有找到一个比较好的网站 https://www.w3school.com.cn/js/index.asp 介绍也全面&#xff0c;内容也比较多。我觉得把最基本的语法看看&#xff0c;然后可以上手写代码了。其他的就是需要靠长期的学习和积累了。 基础语法的使用&#xff1a; 1、定义一个变量 2、对变量赋值 …

YB4606最大2A电流的可编程过压保护开关IC

概述&#xff1a; YB4606的前端是过电压和过电压电流保护装置。它实现了宽输入电压范围从2.5Voc到40Voc。过电压阈值可以外部编程或设置为内部默认设置。的超低电阻集成电源路径nFET开关确保更好电池充电系统应用性能。它可以提供高达2A的电流&#xff0c;以满足电池供应系统。…

MATLAB中perceptron函数用法

目录 语法 说明 示例 使用感知器求解简单分类问题 perceptron函数的功能是简单的单层二类分类器。 语法 perceptron(hardlimitTF,perceptronLF) 说明 注意 Deep Learning Toolbox™ 支持早期形式的感知器。为了获得更好的结果&#xff0c;您应改用 patternnet&#xff0…

阿里云服务linux系统CentOs8.5安装/卸载nginx1.15.9

说明&#xff1a;尝试使用CentOs8.5安装nginx1.9.9失败&#xff0c;make的时候报错了&#xff0c;后面降低版本为CentOs7.5安装成功了&#xff0c;参考文章:【精选】centos7安装nginx-1.9.9_linx centos nginx 1.9.9版本 nginx error log file: "/-CSDN博客 一、安装ngin…

机器学习-特征选择:如何使用互信息特征选择挑选出最佳特征?

一、引言 特征选择在机器学习中扮演着至关重要的角色&#xff0c;它可以帮助我们从大量的特征中挑选出对目标变量具有最大预测能力的特征。互信息特征选择是一种常用的特征选择方法&#xff0c;它通过计算特征与目标变量之间的互信息来评估特征的重要性。 互信息是信息论中的一…

小程序开发——小程序项目的配置与生命周期

1.app.json配置属性 app.json配置属性 2.页面配置 app的页面配置指的是pages属性&#xff0c; pages数组的第一个页面将默认作为小程序的启动页。利用开发工具新建页面时&#xff0c;则pages属性对应的数组将自动添加该页面的路径&#xff0c;若是在硬盘中添加文件的形式则不…

前端打印表格功能+单号生成条形码

第一种打印方法&#xff1a;不需要下载任何插件 浏览器自带打印功能&#xff08;不太推荐&#xff09;&#xff0c;原理是生成新的页面后被打印&#xff0c;当打印完成或者取消打印时&#xff0c;页面需要强制刷新&#xff0c;否则页面无法回显。 //打印功能 print() {var pr…

【Docker】Linux路由连接两个不同网段namespace,连接namespace与主机

如果两个namespace处于不同的子网中&#xff0c;那么就不能通过bridge进行连接了&#xff0c;而是需要通过路由器进行三层转发。然而Linux并未像提供虚拟网桥一样也提供一个虚拟路由器设备&#xff0c;原因是Linux自身就具备有路由器功能。 路由器的工作原理是这样的&#xff…

算法刷题记录6 - 反转链表和链表两两交换

哎&#xff0c;都两周没刷题了&#xff0c;罪过 第一题 2023.10.29 周日 上链接 206. 反转链表 难度&#xff1a;简单 代码随想录 文档 代码随想录 视频 这道题说难不难&#xff0c;但是也不知道是太久没写没感觉了还是确实细节多&#xff0c;不看视频确实感觉不出写的问题在…

边缘计算技术的崭新篇章:赋能未来智能系统

边缘计算是近年来云计算和物联网技术发展的重要趋势。通过将数据处理和分析从云端迁移到设备边缘&#xff0c;边缘计算能够实现更低的延迟和更高的数据安全。本文将探索边缘计算技术的最新进展及其在不同行业中的应用场景。 1. 实时数据处理与决策 在需要快速响应的场景中&…

理解android AIDL

理解Android AIDL 在研究了 Android Frameworks 中进程间通信&#xff08;IPC&#xff09;相关的一些程序后&#xff0c;了解到 Android 系统中进程间通信的机制绝大部分就是 Binder&#xff0c;主要表现在系统服务的调用&#xff0c;app进程间功能调用等。而 Android 上实现 …

虚幻C++基础 day1

虚幻C概念 虚幻C类的继承结构 虚幻引擎C类层级结构(Hierarchy) 这些基本类又派生出了很多子类&#xff0c;例&#xff1a; UE中的反射与垃圾回收系统 例如一个创建了一个Actor类&#xff0c;有一个Actor类型指针去指向这个Actor类&#xff0c;如果的指针被销毁了&#xff…

38基于matlab的期货预测,利用PSO优化SVM和未优化的SVM进行对比,得到实际输出和期望输出结果。

基于matlab的期货预测&#xff0c;利用PSO优化SVM和未优化的SVM进行对比&#xff0c;得到实际输出和期望输出结果。线性核函数、多项式、RBF核函数三种核函数任意可选&#xff0c;并给出均方根误差&#xff0c;相对误差等结果&#xff0c;程序已调通&#xff0c;可直接运行。 3…

谈API接入必须了解的各大API调用电商API应用场景

哪些业务场景可以使用API接口&#xff1f; &#xff08;1&#xff09;爬虫业务&#xff1a;在爬虫业务中&#xff0c;使用API接口可以帮助解决IP限制、反爬虫策略等问题&#xff0c;提高爬取数据的效率和稳定性。 &#xff08;2&#xff09;网络安全&#xff1a;在网络安全领…

虚拟化、容器与Docker基本介绍以及安装部署(Docker 基本管理)

虚拟化、容器与Docker基本介绍以及安装部署&#xff08;Docker 基本管理&#xff09; 1、Docker 概述1.1Docker与虚拟机的区别1.2容器在内核中支持2种重要技术&#xff1a;1.3Docker核心概念 2、安装docker服务docker安装步骤详解 3、 网络优化4、docker基本命令4.1查看镜像——…

代码随想录算法训练营第三十九天丨 动态规划part02

62.不同路径 思路 动态规划 机器人从(0 , 0) 位置出发&#xff0c;到(m - 1, n - 1)终点。 按照动规五部曲来分析&#xff1a; 确定dp数组&#xff08;dp table&#xff09;以及下标的含义 dp[i][j] &#xff1a;表示从&#xff08;0 &#xff0c;0&#xff09;出发&#…

荣电集团与钕希科技签署全面战略合作

10月26日&#xff0c;荣电集团&#xff08;以下简称荣电&#xff09;与钕希科技南京有限公司&#xff08;以下简称钕希科技&#xff09;今天在合肥市签署全面战略合作协议&#xff0c;联合进军混合现实&#xff08;Mixed Reality&#xff0c;以下简称MR&#xff09;空间计算高科…

leetcode-字符串

1.反转字符串LeetCode344. 20230911 难度为0&#xff0c;此处就不放代码了 注意reverse和swap等一系列字符串函数什么时候该用&#xff0c;记一记库函数 swap可以有两种实现&#xff0c;涨知识了&#xff0c;除了temp存值还可以通过位运算&#xff1a;s[i] ^ s[j]; s[j] ^ s[i…

【c++|opencv】二、灰度变换和空间滤波---1.灰度变换、对数变换、伽马变换

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 灰度变换、对数变换、伽马变换 1. 灰度变换 #include <iostream> #include <opencv2/opencv.hpp>using namespace std; using namespace c…