HTML5 Canvas Set Top / Left - PullRequest
       3

HTML5 Canvas Set Top / Left

0 голосов
/ 27 февраля 2019

Я могу легко установить свойства canvas.width и canvas.height.Я не могу найти правильный синтаксис JavaScript, чтобы установить смещение холста, используя top и left.Я попытался установить эти свойства непосредственно на холсте и на ограничительном прямоугольнике.

Я хотел бы иметь возможность установить верхнее и левое смещение, чтобы я мог изменить положение холста, когда пользователь нажимает на точку.

Если canvas.width = 600 работает просто отлично;почему canvas.top = 80 не работает?Я сбит с толку.Спасибо за вашу помощь.

Ответы [ 4 ]

0 голосов
/ 27 февраля 2019

Короче говоря, width и height являются атрибутами html и поэтому могут быть установлены с использованием element.width и element.height.Тем не менее, top является условным обозначением CSS, а не атрибутом html - поэтому его можно установить только с помощью element.style.top.

. Кроме того, как уже указывалось в других ответах, условное обозначение CSS position имеетлибо fixed, либо absolute, чтобы top и left работали.

0 голосов
/ 27 февраля 2019

Чтобы установить верхнюю позицию холста, вам нужно обернуть холст внутри другого div с абсолютным позиционированием.Затем установите положение холста относительно его div.Наконец, вы можете установить стиль холста.

Убедитесь, что вы указали единицы измерения, например px, em, rem, % и т. Д. *

var panel = document.getElementById('panel');

panel.width = 600;
panel.height = 200;
panel.style.top = '80px'; // Must specify unit.
.container {
  position: absolute;
  background: #0FF;
}

#panel {
  position: relative;
  background: #F00;
}
<div class="container">
  <canvas id="panel"></canvas>
</div>

Состояние Документы :

Эффект top зависит от того, какэлемент позиционируется (т. е. значение свойства position):

  • Если для position установлено значение absolute или fixed, свойство top указывает расстояние междуверхний край элемента и верхний край содержащего его блока.(Содержащий блок должен иметь свойство position: relative)
  • Когда для position установлено значение relative, свойство top указывает расстояние, на которое верхний край элемента перемещается ниже его нормального положения.
  • Когда для position установлено значение sticky, свойство top ведет себя так, как будто его position равно relative, когда элемент находится внутри области просмотра, и как его position равно fixed, когда оноснаружи.
  • Если для position установлено значение static, свойство top не имеет никакого эффекта .
0 голосов
/ 27 февраля 2019

Убедитесь, что вы установили положение на относительное или абсолютное.Посмотрите на пример ниже.

<!DOCTYPE html>
<html>

<body>

  <canvas id="myCanvas" width="200" height="100" style="border:1px solid #d3d3d3;top: 80px; position: absolute;">
Your browser does not support the HTML5 canvas tag.</canvas>

  <script>
    var c = document.getElementById("myCanvas");
    var ctx = c.getContext("2d");
    ctx.moveTo(0, 0);
    ctx.lineTo(200, 100);
    ctx.stroke();
  </script>

</body>

</html>
0 голосов
/ 27 февраля 2019

Пожалуйста, попробуйте canvas.style.top = "80px";

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...