gpt4 book ai didi

javascript - canvasjs中的缩放后退按钮

转载 作者:行者123 更新时间:2023-12-02 14:38:13 24 4
gpt4 key购买 nike

有没有办法使用 jQuery 或普通 JS 在 canvasjs 中添加缩放后退按钮?

我试图将其添加到右上角的附近,但我必须做错事。

是否可以使用滚轮来放大和缩小?

这些是我想要应用缩放按钮的图表:

enter image description here

最佳答案

到目前为止,库中不提供逐步缩小功能。您可以按照 example 中所示进行解决。 .

var axisX = {};
var limit = 1000; //increase number of dataPoints by increasing this
document.getElementById("button").style.visibility = "hidden";
var y = 0;
var data = []; var dataSeries = { type: "line" };
var dataPoints = [];
for (var i = 0; i < limit; i += 1) {
y += (Math.random() * 10 - 5);
dataPoints.push({
x: i - limit / 2,
y: y
});
}
dataSeries.dataPoints = dataPoints;
data.push(dataSeries);
var chart = new CanvasJS.Chart("chartContainer",
{
zoomEnabled: true,
rangeChanged: function(e){
if (!e.chart.options.viewportMinStack){
e.chart.options.viewportMinStack = [];
e.chart.options.viewportMaxStack = [];
}
if(e.trigger === "zoom"){
e.chart.options.viewportMinStack.push(e.axisX.viewportMinimum);
e.chart.options.viewportMaxStack.push(e.axisX.viewportMaximum);
document.getElementById("button").style.visibility = "visible";
}
if(e.trigger === "reset"){
axisX.viewportMinimum = null;
axisX.viewportMaximum = null;
e.chart.render();
e.chart.options.viewportMinStack=[];
e.chart.options.viewportMinStack=[];
document.getElementById("button").style.visibility = "hidden";
}
},
title:{
text: "Zoom & Pan with Back button"
},
axisX: axisX,
data: data, // random generator below
});
chart.render();


//Function for back button
function back(){
var viewportMinStack = chart.options.viewportMinStack;
var viewportMaxStack = chart.options.viewportMaxStack;
//if(!chart.axisX){
// chart.axisX = {};
// }
if(viewportMinStack.length>1){
viewportMinStack.pop();
viewportMaxStack.pop();
axisX.viewportMinimum = viewportMinStack[viewportMinStack.length-1];
axisX.viewportMaximum = viewportMaxStack[viewportMaxStack.length-1];
}
else{
axisX.viewportMinimum = null;
axisX.viewportMaximum = null;
document.getElementById("button").style.visibility = "hidden";
}
chart.render();
}
var button = document.getElementById( "button" );
button.addEventListener( "click", back);
#button{
background-color: Transparent;
background-repeat:no-repeat;
border: none;
cursor:pointer;
overflow: hidden;
position: absolute;
z-index: 100;
margin-left: 10px;
}
.btn-back {
display: inline-block;
position: absolute;
z-index: 1;
padding: 0 10px 0 30px;
line-height: 44px;
color: #000;
text-decoration: none;
font-family: sans-serif;
font-size: 12px;
}
.btn-back:before {
content: '';
position: absolute;
box-sizing: border-box;
left: 20px;
right: 0;
height: 34px;
margin-top: 5px;
z-index: -1;
border: 1px solid #b3b3b3;
border-left-width: 0;
border-radius: 5px;
background: #d9d9d9;
}

.btn-back:after {
content: '';
position: absolute;
box-sizing: border-box;
left: 11px;
height: 27px;
width: 26px;
top: 8px;
z-index: -2;
border: 1px solid #b3b3b3;
border-top: 0 transparent;
border-right: 0 transparent;
border-radius: 7px 5px 5px 7px;
background: #d9d9d9;
-webkit-transform: rotate(45deg);
-moz-transform: rotate(45deg);
-ms-transform: rotate(45deg);
-o-transform: rotate(45deg);
transform: rotate(45deg);
}
<script src="http://canvasjs.com/assets/script/canvasjs.min.js"></script>

<body>
<button class="btn-back" id="button">Back</button>
<div id="chartContainer" style="height: 360px; width: 100%;"></div>
</body>

如果需要,您可以使用 viewportMinimum 通过滚轮实现放大和缩小和 viewportMaximum与 javascript mousewheel 一起事件。

关于javascript - canvasjs中的缩放后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37260482/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com