. js отлично, и я создаю свой первый график. Но у меня есть одна проблема, которую я не могу понять. После создания объекта мой холст / график переходят влево, хотя я имею текстовый центр с помощью bootstrap4. Холст в самом начале тоже в нужном месте. Код, воспроизводящий проблему:
html:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Test</title> <!-- Latest compiled and minified Bootstrap CSS --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"> </head> <body> <div class="container-fluid"> <div class="col-sm-12"> <div id="my_graph" class="col-sm-12 text-center">Graph: <br></div> <button id="test_button" type="button" class="btn btn-primary">test_button</button> </div> </div> <!-- jQuery library --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <!-- Popper JS --> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script> <!-- Latest compiled JavaScript --> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script> <!-- Bootstrap validator --> <script src="https://cdnjs.cloudflare.com/ajax/libs/1000hz-bootstrap-validator/0.11.9/validator.min.js"></script> <!-- chart.js --> <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js"></script> <!-- Import custom JavaScript --> <script src="./js.js"></script> </body> </html>
И js:
$(document).ready(function () { $('#my_graph').append('<canvas id="myCanvas" width="100" height="100" style="border:1px solid #000000">'); }); $('#test_button').click(function (event) { drawGraph(); }) function drawGraph() { var ctx = document.getElementById('myCanvas'); myLineGraph = new Chart(ctx, { type: 'line', data: { labels: [0], datasets: [{ data: [0], label: "nr1", }] }, options: { responsive: false } }); }
Я что-то упустил? Большое спасибо.
Я нашел вашу проблему ...!
В начальный момент времени canvas установлен на display: block, вам нужно перейти на display: inline-block; после ; точка с запятой на холсте тег под style
canvas
display: block
display: inline-block;
;
style
Вы можете добавить align="center" или class="text-center" на canvas тег, как вы будете sh
align="center"
class="text-center"
Например:
<canvas id="myCanvas" align="center" width="100" height="100" style="border:1px solid #000000; display: inline-block;">
Это решение вы можете проверить здесь
$(document).ready(function() { $('#my_graph').append('<canvas id="myCanvas" align="center" width="100" height="100" style="border:1px solid #000000; display: inline-block;">'); }); $('#test_button').click(function(event) { drawGraph(); }) function drawGraph() { var ctx = document.getElementById('myCanvas'); myLineGraph = new Chart(ctx, { type: 'line', data: { labels: [0], datasets: [{ data: [0], label: "nr1", }] }, options: { responsive: false } }); }
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>Test</title> <!-- Latest compiled and minified Bootstrap CSS --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css"> </head> <body> <div class="container-fluid"> <div class="col-sm-12"> <div id="my_graph" class="text-center" >Graph: <br></div> <button id="test_button" type="button" class="btn btn-primary">test_button</button> </div> </div> <!-- jQuery library --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script> <!-- Popper JS --> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script> <!-- Latest compiled JavaScript --> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script> <!-- Bootstrap validator --> <script src="https://cdnjs.cloudflare.com/ajax/libs/1000hz-bootstrap-validator/0.11.9/validator.min.js"></script> <!-- chart.js --> <script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.9.3/Chart.min.js"></script> <!-- Import custom JavaScript --> <script src="./js.js"></script> </body> </html>