Obtenha a posição X, Y do elemento em Javascript

upog

Desejo encontrar a posição X, Y do clique do mouse em relação ao elemento SVG. O elemento SVG será incorporado em HTML.

var svg = document.getElementById("svg1");
svg.addEventListener('click', event => {
  let x = event.clientX;
  let y = event.clientY;
  console.log(x, y);
});
html {
  height: 100%
}

body {
  height: 100%;
  display: flex;
  justify-content: center;
  background-color: #fff;
}

svg {
  height: 100%;
  background: grey;
}
<svg id="svg1" viewBox="0 0 100 100">
    <circle cx="50" cy="50" r="40" fill="#52c927" />
    <circle cx="50" cy="50" r="25"   fill="white" />
    <circle cx="50" cy="50" r="15"  fill="red" />
</svg>

Deseja subractar offsetLeft e offsetTop de SVG antes de imprimir X e Y no console. Mas não é capaz de obter esse valor

Roko C. Buljan

Para obter as coordenadas ou o tamanho de um elemento, use Element.getBoundingClientRect

event.target.getBoundingClientRect()ou event.currentTarget.getBoundingClientRect()(para o elemento vinculado ao ouvinte, em vez de aquele que propagou o evento). Ou diretamente com sua constante de referência de Elemento em cachesvg.getBoundingClientRect()

const bcr = event.target.getBoundingClientRect();
console.log(bcr.left, bcr.top)

https://developer.mozilla.org/en-US/docs/Web/API/Element/getBoundingClientRect

No seu caso específico, para obter as coordenadas relativas do mouse:

var svg = document.getElementById("svg1");
svg.addEventListener('click', event => {
  const bcr = event.target.getBoundingClientRect();
  const relative_x = event.clientX - bcr.left;
  const relative_y = event.clientY - bcr.top;
  console.log(relative_x, relative_y);
});

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Obtenha a posição X, Y do elemento em Javascript

Obtenha a posição real do elemento em XSLT

Obtenha a posição X / Y do pixel no arquivo PNG

Obtenha a id do elemento âncora irmão anterior em javascript

Como mover a posição x / y do elemento com js?

Obtenha o valor do elemento em react

Obtenha a posição do cursor em LIBGDX

Obtenha a posição do UIButton em UITableViewCell

Obtenha a posição de rolagem em Javascript

Javascript, jogo, como posso determinar a posição (x, y) de um elemento div em relação a um div pai em javascript?

Obtenha a posição X / Y da substring em TextView multilinha + rolável no SwiftUI e macOS 11

Gerenciador de tags do Google - Obtenha o pai do elemento em uma variável javascript

Obtenha o índice do primeiro elemento em uma matriz com valor maior que x

JSONNET Obtenha a posição de um elemento em uma matriz

JSONNET Obtenha a posição de um elemento em uma matriz

Obtenha a posição do cursor em tempo real no Mac OS X 10.14 com Python 3.7

Python - Encontre e obtenha a posição do elemento na matriz

Obtenha a posição de deslocamento do elemento com transferidor

Obtenha url do elemento onclick javascript em scrapy

Recuperar a posição (X,Y) de um elemento HTML em Ruby

Rastreie a posição do elemento com JavaScript

Obtenha o endereço do elemento em um vetor

Obtenha o elemento do corpo do site usando apenas javascript

Obtenha o nome do elemento de XML em Java DOM

React: obtenha o tamanho do elemento em componentDidMount

Obtenha o Id do elemento em Angular js

Obtenha o valor do elemento em xml via python

Obtenha o elemento do conjunto de tuplas em F #

Obtenha as coordenadas do elemento em relação ao svg envolvente

TOP lista

  1. 1

    R Shiny: use HTML em funções (como textInput, checkboxGroupInput)

  2. 2

    O Chromium e o Firefox exibem as cores de maneira diferente e não sei qual deles está fazendo certo

  3. 3

    Como assinar digitalmente um documento PDF com assinatura e texto visíveis usando Java

  4. 4

    R Folheto. Dados de pontos de grupo em células para resumir muitos pontos de dados

  5. 5

    Gerenciar recurso shake de Windows Aero com barra de título personalizado

  6. 6

    Como obter dados API adequados para o aplicativo angular?

  7. 7

    UITextView não está exibindo texto longo

  8. 8

    Por que meus intervalos de confiança de 95% da minha regressão multivariada estão sendo plotados como uma linha de loess?

  9. 9

    Acessando relatório de campanhas na AdMob usando a API do Adsense

  10. 10

    Usando o plug-in Platform.js do Google

  11. 11

    Como posso modificar esse algoritmo de linha de visada para aceitar raios que passam pelos cantos?

  12. 12

    Dependência circular de diálogo personalizado

  13. 13

    Coloque uma caixa de texto HTML em uma imagem em uma posição fixa para site para desktop e celular

  14. 14

    iOS: como adicionar sombra projetada e sombra de traço no UIView?

  15. 15

    Como usar a caixa de diálogo de seleção de nomes com VBA para enviar e-mail para mais de um destinatário?

  16. 16

    Tabela CSS: barra de rolagem para a primeira coluna e largura automática para a coluna restante

  17. 17

    How to create dynamic navigation menu select from database using Codeigniter?

  18. 18

    Converter valores de linha SQL em colunas

  19. 19

    ChartJS, várias linhas no rótulo do gráfico de barras

  20. 20

    用@StyleableRes注释的getStyledAttributes。禁止警告

  21. 21

    não é possível adicionar dependência para com.google.android.gms.tasks.OnSuccessListener

quentelabel

Arquivo