当前位置: 首页 > 知识库问答 >
问题:

如何用JavaScript将HTML图像移动到点击位置

有品
2023-03-14

我正在尝试移动一个HTML图像(一个黑色标记)到我点击屏幕上的地图的地方。地图有一个onclick功能,它使标记可见,并移动到用户点击的地方。然而,目前这只适用于我正在使用的屏幕大小,每当改变窗口大小时,图像就会在每个轴上偏离几百像素。

目前,我将点击的坐标存储在数组中,并使用DOM style.left/top来更改位置,使用这些坐标加上一组对我有效的像素,而不是任何其他屏幕。我想有一种方法,让它移动到用户点击的任何地方,不管页面的尺寸。

这是我当前的工作方式,coords是包含相对坐标的数组:

document.getElementById('black-marker').style.visibility = 'visible';
document.getElementById('black-marker').style.left = coords[0]-20;
document.getElementById('black-marker').style.top = coords[1]+205;

共有1个答案

杜起运
2023-03-14

在红色方框中点击,黑色圆圈将移动到鼠标点。

我得到了红色框的位置和鼠标位置,并用它们为黑色框计算相对位置。

null

const blackMarker = document.getElementById('black-marker');
const parent = blackMarker.parentElement;

parent.addEventListener('click', e => {
  const {
    x,
    y
  } = parent.getBoundingClientRect();
  blackMarker.style.left = `${e.clientX - x}px`;
  blackMarker.style.top = `${e.clientY - y}px`;
});
body {
  width: 100vw;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
}

div {
  position: relative;
  width: 150px;
  height: 150px;
  background-color: red;
}

span {
  position: absolute;
  transform: translate(-50%, -50%);
  width: 25px;
  border-radius: 50%;
  height: 25px;
  background-color: black;
}
<div>
  <span id="black-marker"></span>
</div>
 类似资料:
  • 为什么我的代码不起作用?我想把图像从一个活动转移到另一个活动。请帮忙!注意:我已经创建了一个摄像头功能,这就是我获得图像的地方。 这是主要活动。Java语言 这就是结果性。Java语言 如果我做错了什么请告诉我谢谢

  • 您好,我需要通过点击按钮使用html访问移动摄像头,通过在google和stackoverflow上搜索,我得到了一些html输入标记示例,如下所示。但这里我需要的是,我有一个自定义按钮,当我点击按钮,我应该能够访问我的相机,但下面是一个输入标签,我无法添加到我的按钮。所以请有人帮我怎么做。 谢谢。

  • 本文向大家介绍Unity实现移动物体到鼠标点击位置,包括了Unity实现移动物体到鼠标点击位置的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Unity实现移动物体到鼠标点击位置的具体代码,供大家参考,具体内容如下 目的: 移动物体到鼠标点击处屏幕所对应的空间位置,并使物体正对着点击的对象,不能倾斜。 首先,需要获取点击屏幕所对应的空间位置,这可以通过先获取屏幕坐标,然后转成空间坐标

  • 使用Glide将URL下载到非常容易: 我想知道我是否也可以下载到中?我想下载到原始位图中,然后我可以使用其他工具进行操作。我已经浏览了代码,但不知道如何操作。

  • 好的,我需要一个功能,我需要能够在图像本身的框架内正确定位图像。 正如您在图像中看到的,图像容器的大小是固定的,如果图像大于框架本身,我需要能够在框架内重新定位图像。我尝试用矩形剪切图像并将图像定位在矩形内,但剪辑会创建一个等于矩形大小的新图像,因此到目前为止还没有成功。类中是否有任何属性可以让我们移动图像位置?所以我找不到任何属性。非常感谢任何帮助。谢谢。

  • 非常奇怪。例如,假设一个名为“rv”的。 > 如果现在项目10位于当前的下,请调用,回收视图将项目10滚动到底部。 如果现在项目10位于当前的中,请调用,不会进行任何滚动,不会执行任何操作。 如果现在项目10位于当前的顶部,请调用,回收视图将滚动项目10至顶部。 但我需要的是,无论何时调用它,都会将假定的位置滚动到当前视图的顶部,就像案例3一样。怎么做?