You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在鼠标点击位置动态追加DOM实现添加定位标记功能

存在的问题

  • 缺少Font Awesome图标库依赖,代码中使用的fa fa-location图标类无法被识别渲染,看不到标记内容
  • 追加的<i>标签未设置定位相关样式,默认静态定位下top/left属性不生效,标记无法出现在点击位置
  • 注释掉的定位代码本身语法错误,没有选中要设置样式的DOM元素
  • 未做点击位置的偏移修正,图标默认会以左上角对准点击位置,视觉上和预期点击点有偏差

调整方案

1. 调整HTML引入内容

补加Font Awesome的样式引入,确保图标可以正常渲染:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">

2. 调整CSS代码

给标记设置通用样式,同时给body开启相对定位作为定位参照物:

html,body{
  height:100%;
  margin: 0;
  position: relative;
}
.click-pin {
  position: absolute;
  font-size: 24px;
  color: #f43f5e;
  /* 修正偏移,让图标尖端对准点击位置 */
  transform: translate(-50%, -100%);
  /* 防止图标挡住后续点击事件 */
  pointer-events: none;
}

3. 调整JS代码

给追加的图标加上自定义类,同时绑定点击位置的坐标属性:

$("body").click(function(e) {
  console.log("%c ______________________________", "background: linear-gradient(45deg, red, yellow, blue, green, purple)");
  console.log("e.pageX", e.pageX);
  console.log("e.pageY", e.pageY);
  $("body").append(`<i class="fa fa-map-marker click-pin" style="left: ${e.pageX}px; top: ${e.pageY}px"></i>`);
});

内容的提问来源于stack exchange,提问作者code-8

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 22:09:01