问题描述
我在图表中添加了两个按钮:“缩放-”和“缩放+”。当用户单击按钮时,我想更改图表的宽度。但是图表的宽度不会改变。当用户单击按钮“ Scale +”时,我想增加图表的宽度,并且当用户单击按钮“ Scale-”时,我想减小图表的宽度。 ,例如10%。
<!DOCTYPE html>
<html>
<head>
<link href = "https://cdnjs.cloudflare.com/ajax/libs/extjs/6.0.0/classic/theme-classic/resources/theme-classic-all.css"
rel = "stylesheet" />
<script type = "text/javascript"
src = "https://cdnjs.cloudflare.com/ajax/libs/extjs/6.0.0/ext-all.js"></script>
<script type = "text/javascript"
src = "https://cdnjs.cloudflare.com/ajax/libs/extjs/6.0.0/packages/charts/classic/charts.js"></script>
<link href = "https://cdnjs.cloudflare.com/ajax/libs/extjs/6.0.0/packages/charts/classic/classic/resources/charts-all.css"
rel = "stylesheet" />
<script type = "text/javascript">
Ext.onReady(function() {
Ext.create('Ext.chart.CartesianChart',{
renderTo: document.body,width: 600,height: 200,store: {
fields: ['name','g1','g2'],data: [
{"name": "Item-0","g1": 57,"g2": 59},{"name": "Item-1","g1": 45,"g2": 50},{"name": "Item-2","g1": 67,"g2": 43},{"name": "Item-3","g2": 18},{"name": "Item-4","g1": 30,"g2": 90}
]
},legend: {
docked: 'bottom'
},//define x and y axis.
axes: [{
type: 'numeric',position: 'left'
},{
type: 'category',visibleRange: [0,1],position: 'bottom'
}],//define the actual series
series: [{
type: 'line',xField: 'name',yField: 'g1',title: 'normal'
},{
type: 'line',yField: 'g2',title: 'Smooth'
}],dockedItems: [
{
xtype: 'toolbar',flex: 1,dock: 'bottom',ui: 'footer',layout: {
pack: 'end',type: 'hBox'
},items: [
{
xtype: 'button',text: 'Scale -',itemId: 'ScaleDec',handler : function()
{
this.width = 100;
this.reload();
},},{
xtype: 'button',text: 'Scale +',itemId: 'ScaleInc',handler : function()
{
this.width = 1000;
this.reload();
},}
]
}
],});
});
</script>
</head>
<body>
</body>
</html>
解决方法
<script type = "text/javascript">
var width = 1000;
Ext.onReady(function() {
var myChart = Ext.create('Ext.chart.CartesianChart',{
renderTo: document.body,width: 600,height: 200,store: {
fields: ['name','g1','g2'],data: [
{"name": "Item-0","g1": 57,"g2": 59},{"name": "Item-1","g1": 45,"g2": 50},{"name": "Item-2","g1": 67,"g2": 43},{"name": "Item-3","g2": 18},{"name": "Item-4","g1": 30,"g2": 90}
]
},legend: {
docked: 'bottom'
},//define x and y axis.
axes: [{
type: 'numeric',position: 'left'
},{
type: 'category',visibleRange: [0,1],position: 'bottom'
}],//define the actual series
series: [{
type: 'line',xField: 'name',yField: 'g1',title: 'Normal'
},{
type: 'line',yField: 'g2',title: 'Smooth'
}],dockedItems: [
{
xtype: 'toolbar',flex: 1,dock: 'bottom',ui: 'footer',layout: {
pack: 'end',type: 'hbox'
},items: [
{
xtype: 'button',text: 'Scale -',itemId: 'ScaleDec',handler : function()
{
width = width - width * 0.1;
myChart.setWidth(width);
},scope: this,},{
xtype: 'button',text: 'Scale +',itemId: 'ScaleInc',handler : function()
{
width = width + width * 0.1;
myChart.setWidth(width);
},}
]
}
],});
});
</script>