- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
window.onload = function() {
var chart = new CanvasJS.Chart("chartContainer", {
zoomEnabled: false,
animationEnabled: true,
title: {
text: "Mobile Phone Subscriptions"
},
axisY2: {
valueFormatString: "0.0 bn",
maximum: 1.2,
interval: .2,
interlacedColor: "#F5F5F5",
gridColor: "#D7D7D7",
tickColor: "#D7D7D7"
},
theme: "theme2",
toolTip: {
shared: true
},
legend: {
verticalAlign: "bottom",
horizontalAlign: "center",
fontSize: 15,
fontFamily: "Lucida Sans Unicode"
},
data: [{
type: "line",
lineThickness: 3,
axisYType: "secondary",
showInLegend: true,
name: "India",
dataPoints: [{
x: new Date(2001, 0),
y: 0
}, {
x: new Date(2002, 0),
y: 0.001
}, {
x: new Date(2003, 0),
y: 0.01
}, {
x: new Date(2004, 0),
y: 0.05
}, {
x: new Date(2005, 0),
y: 0.1
}, {
x: new Date(2006, 0),
y: 0.15
}, {
x: new Date(2007, 0),
y: 0.22
}, {
x: new Date(2008, 0),
y: 0.38
}, {
x: new Date(2009, 0),
y: 0.56
}, {
x: new Date(2010, 0),
y: 0.77
}, {
x: new Date(2011, 0),
y: 0.91
}, {
x: new Date(2012, 0),
y: 0.94
}
]
}, {
type: "line",
lineThickness: 3,
showInLegend: true,
name: "China",
axisYType: "secondary",
dataPoints: [{
x: new Date(2001, 00),
y: 0.18
}, {
x: new Date(2002, 00),
y: 0.2
}, {
x: new Date(2003, 0),
y: 0.25
}, {
x: new Date(2004, 0),
y: 0.35
}, {
x: new Date(2005, 0),
y: 0.42
}, {
x: new Date(2006, 0),
y: 0.5
}, {
x: new Date(2007, 0),
y: 0.58
}, {
x: new Date(2008, 0),
y: 0.67
}, {
x: new Date(2009, 0),
y: 0.78
}, {
x: new Date(2010, 0),
y: 0.88
}, {
x: new Date(2011, 0),
y: 0.98
}, {
x: new Date(2012, 0),
y: 1.04
}
]
}, {
type: "line",
lineThickness: 3,
showInLegend: true,
name: "USA",
axisYType: "secondary",
dataPoints: [{
x: new Date(2001, 00),
y: 0.16
}, {
x: new Date(2002, 0),
y: 0.17
}, {
x: new Date(2003, 0),
y: 0.18
}, {
x: new Date(2004, 0),
y: 0.19
}, {
x: new Date(2005, 0),
y: 0.20
}, {
x: new Date(2006, 0),
y: 0.23
}, {
x: new Date(2007, 0),
y: 0.261
}, {
x: new Date(2008, 0),
y: 0.289
}, {
x: new Date(2009, 0),
y: 0.3
}, {
x: new Date(2010, 0),
y: 0.31
}, {
x: new Date(2011, 0),
y: 0.32
}, {
x: new Date(2012, 0),
y: 0.33
}
]
}
],
legend: {
cursor: "pointer",
itemclick: function(e) {
if (typeof(e.dataSeries.visible) === "undefined" || e.dataSeries.visible) {
e.dataSeries.visible = false;
} else {
e.dataSeries.visible = true;
}
chart.render();
}
}
});
chart.render();
}
#control_panel_container {
text-align: center;
}
.cp_content_container {
padding-top: 12px;
text-align: left;
color: #373737;
}
.cp_content_container > div {
display: none;
}
input.control_panel_tabs {
display: none;
}
label.control_panel_tabs {
font-family: Verdana, Tahoma, sans-serif;
font-weight: 600;
background-color: #C0B9C7;
color: white;
display: inline-block;
padding: 15px 25px;
text-align: center;
border: 2px solid black;
border-radius: 15px;
}
label.control_panel_tabs:hover {
background-color: #AA95B9;
color: #fff;
cursor: pointer;
}
input:checked + label.control_panel_tabs {
background: #9471AB;
color: #fff;
}
#cp_tab1:checked ~ .cp_content_container #cp_content1,
#cp_tab2:checked ~ .cp_content_container #cp_content2 {
display: block;
}
<script src="http://canvasjs.com/assets/script/canvasjs.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="control_panel_container">
<input class="control_panel_tabs" id="cp_tab1" type="radio" name="cp_tabs" checked>
<label class="control_panel_tabs" for="cp_tab1">tab 1</label>
<input class="control_panel_tabs" id="cp_tab2" type="radio" name="cp_tabs">
<label class="control_panel_tabs" for="cp_tab2">tab 2</label>
<div class="cp_content_container">
<div id="cp_content1"></div>
<div id="cp_content2">
<div id="chartContainer" style="height: 300px; width: 100%;"></div>
</div>
</div>
</div>
我在默认情况下隐藏的选项卡中有一个图表。当用户单击该选项卡时,它们就会出现。然而,它们有点倾斜,水平方向被挤压,垂直方向被拉伸(stretch)。请参阅 fiddle 了解我的意思,它位于“选项卡 2”下。
更改浏览器的缩放级别(至少在 Firefox 中)似乎可以使其自行纠正。
我注意到如果我将它放在选项卡 1 中,但是在页面加载时它会正确显示。只有当它不是默认选项卡时,它才会扭曲并需要缩放更改才能正确显示。
这是怎么回事?看起来图形只在我打开选项卡时呈现(根据动画判断)。我在想也许是因为 CSS 中的 display
属性,但也许是因为它需要在页面加载时呈现?
这是一个可编辑的 fiddle : http://jsfiddle.net/ryfy8j9s/1/
最佳答案
问题是图表的默认宽度设置为 500,即使您在 window.onload 中调用 chart.render(),由于其容器不可见,它会以默认宽度创建图表并卡在那里直到再次调用 chart.render() (例如,调整窗口大小)。 这不是唯一的问题。例如,如果您调整窗口大小以修复图表,但随后单击返回选项卡 1,再次调整窗口大小,然后单击返回选项卡 2,再次单击图表尺寸不对。
您可以在创建图表时设置明确的宽度,但这会使图表无法响应调整大小,这可能不是您想要的。
我建议在 tab2 上使用点击处理程序来检查这种确切情况,并仅在图表可见且与其容器大小不同时才调用 chart.render():
window.onload = function () {
$("#cp_tab2").on("click", function() {
if ($("#chartContainer").is(":visible") && $("#chartContainer canvas").width() !== $("#chartContainer").width()) {
chart.render();
}
});
var chart = new CanvasJS.Chart("chartContainer", {
zoomEnabled: false,
// etc.
我在你的 fiddle 上试过了,它解决了这个问题。看我的fork of your jsFiddle.有了这个工作。
关于javascript - CanvasJS 图形倾斜直到缩放级别改变?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32872620/
我正忙着尝试制作一个用于实时数据显示的 javascript 图表。我找到了这个 CanvasJS API。默认代码 specific chart他们的网页上的内容很好,但是当然,他们获取数据的部分,
我正在尝试使用 canvasJS 渲染两个动态图表,第一个图表正确渲染,实际上第二个图表正确填充,请参阅 inspect element 图像,但它没有显示在页面上。 这是界面,只显示一张图表 这是检
我正在尝试创建一个 dynamic chart in canvasjs 。如果数据点高于某个定义值,图表就会发生变化。我想知道您是否可以回到过去,以便可以滚动浏览动态图表。 亲切的问候,肯 最佳答案
我想根据 JSON 数组中的 N 个对象动态创建 CanvasJS 图表。如果 JSON 数组有 3 个对象,则网页应该能够显示 3 个图表。 通过id“spectraContainers”,我
我目前正忙于为老年患者建立商业智能环境。老年人戴着手环来测量加速度和心率。 心率部分将是一个静态图表(不是实时图表),我已经完成了。整个环境实际上已经完成了。实时加速度折线图除外。 所以我想使用Can
我想在图表中显示一些数据。大小约为 200k 数据点 x16 - 这是堆叠值。我希望这个库能够及时渲染这些数据。 数组看起来像:[16][250000],其中外部数组是堆叠值,内部数组保存数据。 [n
我正在尝试修改 Rendering a Chart from User Input for CanvasJS 的示例。我希望 x 轴成为时间线。我觉得我走在正确的轨道上,但现在陷入了设置正确的时间输入
我使用以下代码在 CanvasJS 中渲染 OHLC 图表: var candleData = []; var chart = new CanvasJS.Chart("chartContainer"
所以, 我得到一个对象,其中包含我想以这种形式(通过 Json)以下列形式绘制的数据: chartData(GraphData.year, GraphData.month, GraphData.day
我目前正在从事一个涉及 Bootstrap 和 CanvasJS 的元素,制作圆环图。 是否可以将类(class)标题和/或图例文本设为不间断文本?我一直在尝试包含 但它似乎不起作用。结果是“Le
window.onload = function() { var chart = new CanvasJS.Chart("chartContainer", { zoomEnabled: f
我正在使用 CanvasJs对于条形图,但我想根据屏幕大小进行不同的设置。 例如,对于小于 480 像素的屏幕,我想在 axisY 上完全隐藏标签。如何做到这一点? 似乎无法使用媒体查询和css 来自
我目前面临为 canvasJS 图表创建用户输入标题的问题。我目前正在浏览 canvasJS 上的教程,我认为创建一个面向用户输入的饼图会成为一个简洁的小项目。 我目前面临的问题是试图让从 HTML
我正在使用一个名为 CanvasJS 的安静漂亮的小 js 工具。它工作得很好,直到我需要它一次显示多个图表。 现在它只显示最后一个条目。其他一切都被忽略了。我几乎尝试了所有方法,但就是想不通为什么它
我正在使用 CanvasJs 渲染图表,它现在工作正常。虽然我不确定,但它是否以适当的方式在图表中显示数据。这是我正在使用的逻辑: var query = from c in GetProducts(
我正在尝试以类似于 dygraphs 功能( example here )的方式向我的 CanvasJS 图表添加注释,但尚未找到方法。我见过一个例子,他们用图像( here )替换了一个点,但它并不
我正在尝试创建一个条形图,其中包含 2009 年至 2015 年毛里求斯大学指定专业的在校学生的数据。我正在使用下面的 Javascript,console.log(data) 显示图表已呈现。但是,
我正在尝试使用 canvasJS 渲染多线图,但它没有按预期工作。 这是我的drawChart函数 function drawChart(obj, placeholder){ var dataPoin
我必须为网站创建饼图。在我看来,我无法根据我需要的数量动态渲染饼图。最多我必须渲染 28。所以,我想我必须输入 window.onload = function () { var chart
我正在尝试使用预先确定的数据(也称为来自数据库)在canvasjs中创建饼图。在 Canvasjs 方面,有一个有用的教程可以将多个数据放入图表中(使用弱类型数组),但我不知道如何为图例执行此操作。我
我是一名优秀的程序员,十分优秀!