• HQChart实战教程66-动态调整HQChart布局大小


    HQChart实战教程66-动态调整HQChart布局大小

    需求

    在不销毁hqchart实例的情况下,动态调整K线图或分时图的大小, 如下图,把图1的K线图大小调整为图2的大小

    图1 在这里插入图片描述
    图2在这里插入图片描述

    小程序

    调整画布大小,并把当前的画布大小设置到hqchart里面,然后调用hqchart实例的OnSize()函数就可以。

       <canvas class="historychart"  id='historychart' type="2d"  
        style="height:{{Height}}px; width:{{Width}}px;" 
        bindtouchstart='historytouchstart' bindtouchmove='historytouchmove' bindtouchend='historytouchend'>
      </canvas>
      ..........
      
        OnChangeSize(event)
        {
            var width=300;
            var height=600;
            this.setData({ Width: width, Height: height}, () => {});
    
            this.HistoryChart.CanvasElement.Width=width;
            this.HistoryChart.CanvasElement.Height=height;
    
            var node =  this.HistoryChart.CanvasElement.CanvasNode.node;
            node._width=width;
            node._height=height;
            //const dpr = wx.getSystemInfoSync().pixelRatio;
            node.width = width;
            node.height = height;
    
            this.HistoryChart.OnSize();
        },
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    h5

    调整绑定的div的大小 然后调用hqchart实例的OnSize()函数就可以

     <div id="kline" >
    
    ..........
    this.DivKLine=document.getElementById('kline');
    .....
     
    this.OnSize=function()  //自适应大小调整
    {
         var height= $(window).height()-50;
         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();
     }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17

    App

    调整画布大小,并把当前的画布大小设置到hqchart里面,然后调用hqchart实例的OnSize()函数就可以。

    
    <view>
    	<canvas id="kline2" canvas-id='kline2' class='kline2' v-bind:style="{width: ChartWidth+'px', height: ChartHeight+'px'}" 
    			  @touchstart="KLineTouchStart" @touchmove='KLineTouchMove' @touchend='KLineTouchEnd' ></canvas>  
    </view>
    
    OnTestChangeSize()
    {
    	this.ChartHeight=500;  
    	this.ChartWidth=300;
    	
    	g_JSChart.CanvasElement.Width=this.ChartWidth;
    	g_JSChart.CanvasElement.Height=this.ChartHeight;
    	g_JSChart.OnSize();
    },
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    HQChart插件源码地址

    https://github.com/jones2000/HQChart

  • 相关阅读:
    31年前的Beyond演唱会,是如何超清修复的?
    【Java牛客刷题】入门篇(01)
    vue3开发快速入门
    箭头函数
    【Java技术路线】9. Spring MVC
    异常语法详解
    Vue3 相较 Vue2 做的重大更新
    【pytorch笔记】第三篇 Tensorboard使用
    Python面向对象编程
    JDK的一个Bug,监听文件变更要小心了
  • 原文地址:https://blog.csdn.net/jones2000/article/details/133800739