Проблема с отображением элемента img при размещении над другим элементом - PullRequest
0 голосов
/ 13 июля 2020

У меня есть элемент SVG, который действует как контейнер для созданной мной шахматной доски. Мне нужно, чтобы интерактивный компонент появлялся во время ключевых моментов игры, например, когда пешка продвигается, и игроку нужно выбрать, какую фигуру он хочет. Я не могу сохранить этот компонент в качестве дочернего элемента контейнера для шахматной доски, потому что шахматная доска должна быть отключена, пока пользователь выбирает, какую фигуру он хочет. поэтому моим текущим решением было создать элемент IMG, содержащий все выбираемые части. Я наложил элемент IMG на элемент svg, используя свойства img position: absolute и top / left. Затем я прикрепляю eventListener к самому документу, отключая eventlistener, когда пользователь выбирает то, что ему нужно. Предполагая, что в моем коде нет ошибок, возможен ли такой подход?

Это упрощенная версия моего кода, которая также не работает:

представьте, что синий квадрат - это шахматная доска:

<html>
  <body>
    <h1>The img element</h1>

    <svg id = "cont" width = "500" height = "600">
      <rect width = "500" height = "600" style = "fill:blue">
    </svg>

    <script>
      var im = document.createElement("img");
      im.src = "img_girl.jpg";
      im.width = "250";
      im.height = "300;
      im.style = "position: absolute; top: 100px; left: 100px";
      document.body.appendChild(im);
    </script>

  </body>
</html>

1 Ответ

0 голосов
/ 13 июля 2020

Да, это возможно; когда элементы перекрываются, какой из них отображается сверху, определяется свойством z-index CSS, а затем порядком элементов в документе, если Z-индексы равны. Контейнер шахматной доски может блокировать взаимодействие отдельных фигур с внешними элементами таким образом, но вы можете как минимум наложить новый элемент на весь контейнер шахматной доски.

Тем не менее, я бы не рекомендовал использовать один элемент IMG для отображения меню; есть другие элементы HTML, которые лучше подходят для этой цели.

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