gpt4 book ai didi

javascript - Chart.js 无法在移动设备(safari/chrome)上绘制,在桌面上正常

转载 作者:行者123 更新时间:2023-11-28 03:53:57 24 4
gpt4 key购买 nike

我有一个在桌面上运行得非常好的饼图。它从 AJAX 请求检索数据并存储它获取的 data/json。然后将选定的数据推送到图表中。我正在使用 Thymeleaf 和 Spring,但我相信这与这里无关。

当我通过移动设备上的 Safari 或 Chrome 访问页面时,所有内容都呈现良好,但图表不存在。

我尝试更改响应式 true/false、maintaingAspectRatio false/true,并使用 Chart.js 文档中提供的其他选项。更改了视口(viewport),在 Canvas 容器上设置我的宽度,而不是 Canvas 本身和一大堆其他东西。

会不会是加载顺序的原因?即页面在实际从请求中获取信息之前就已加载?但是,这意味着它也不应该在桌面上运行。

这是一些代码

myGraph.js

$(document).ready(function () {

var id = $.url(2);

$.ajax({
url: "hosturl/a/b/" + id + "/c/d",
type: "GET",
dataType: "json",
success: function (data) {
console.log(data);


var count = [];
var days = [];




for (var i in data) {
days.push(data[i][1]);
count.push(data[i][0]);

}

var chartdata = {
labels: days,
datasets: [
{
label: "By day",
backgroundColor: "#4dc3ff",
borderWidth: 2,
hoverBackgroundColor: "#009",
hoverBorderColor: "#099",
hoverBorderWidth: 5,
data: count
}

]
};

var ctx = $("#daysGraph");


var pieChart = new Chart(ctx, {
type: 'pie',
data: chartdata,
options: {
responsive: true,
legend: {
display: true,
position: 'right',
labels: {
fontColor: "#000"
}

}

}

});
},
error: function (data) {

}
});

graph.html(大部分其他 html 都被删除,但这本身不起作用)

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta name="viewport" content="width=device-width,initial-scale=1,minimum-
scale=1,maximum-scale=7"/>
<title>Hmm</title>

<script type="text/javascript" src="https://code.jquery.com/jquery-3.2.1.min.js"></script>

<link rel="stylesheet" href="http://code.jquery.com/mobile/1.4.5/jquery.mobile-1.4.5.min.css"/>

<script src="../../javascript/Chart.min.js" th:href="@{/Chart.min.js}"/>

<script src="../../javascript/js-url-2.5.0/url.js" th:href="@{/url.js}" ></script >

<link rel="stylesheet" href="../static/css/graph.css" th:href="@{/css/graph.css}"/>

<script src="../../javascript/myGraph.js" th:href="@{/myGraph.js}" />



</head>
<body>

<div class="chart-container">
<canvas id="daysGraph" ></canvas>
</div>



</body>
</html>

graph.css

.chart-container {
position: relative;
margin: auto;
height: 80vh;
width: 80vw;

}

在实时服务器上,它看起来像 this

欢迎任何建议

最佳答案

事实证明,与本地主机相关的移动设备和桌面设备上的 api 路由存在问题。因此,我的数据不是从 api 获取的,因此不会填充图表,这就是它不显示在移动设备上的原因。换句话说,我在错误的地方寻找答案。

关于javascript - Chart.js 无法在移动设备(safari/chrome)上绘制,在桌面上正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47732999/

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