设置弹窗随鼠标位置移动

1.这是要移动的弹窗,隐藏显示逻辑、样式、展示内容自己写,主要就是动态设置弹窗的style,floatLeft和floatTop都是Vue中的data双向绑定数据;

html 复制代码
<div id="box" v-show="hasMove" :style="{ left: floatLeft + 'px', top: floatTop + 'px' }">
   <p>{{ Math.round(distanceSum) }}米</p>
</div>

2.计算弹窗位置主要就是拿到鼠标位置屏幕坐标系和弹窗左上角位置绑定,但是要注意设置鼠标位置在四周边缘的时候, 弹窗不应该被屏蔽遮挡到;

javascript 复制代码
window.addEventListener("mousemove", function (e) {
  // 设置鼠标位置和弹窗左上角的位置
  that.floatLeft = e.pageX + 10;
  that.floatTop = e.pageY - 30;
  // 解决不同浏览器可视区域参数不统一的问题
  let width =
    e.view.innerWidth > e.view.outerWidth
      ? e.view.innerWidth
      : e.view.outerWidth;
  // 设置鼠标位置在屏幕右侧的时候弹窗位置
  if (e.pageX > width - 100) {
    that.floatLeft = width - 100;
  }
  // 设置鼠标位置在屏幕上边的时候弹窗位置
  if (e.pageY < 20) {
    that.floatTop = e.pageY;
  }
  // 设置鼠标位置在屏幕下边的时候弹窗位置
  if (e.pageY > e.view.outerHeight - 10) {
    that.floatTop = e.view.outerHeight - 20;
  }
});
相关推荐
10WTW0123 分钟前
Sprite-Motion-Lab:雪碧图动画编辑器
前端·css·雪碧图·spritemotionlab·10wtw01
夏天要喝冰可乐37 分钟前
用 Gitee Go 搭建WorkBuddy云端定时任务
前端·ai编程
天天鸭1 小时前
5 万处中文的老项目实现国际化,如何用架构思维完成改造?
前端·javascript·架构
程序员黑豆1 小时前
鸿蒙应用开发之持久化存储解析:PersistentStorage / PersistenceV2 / preferences 选型与实战
前端·harmonyos
明月_清风1 小时前
🚀 OpenAI 数据代理架构全解析:从 600 PB 到自然语言的六层上下文工程
前端·后端·架构
明月_清风1 小时前
🚀 从 Foundry 到 AIP:Palantir 发生了什么变化?一篇文章全搞懂
前端·后端
西门啐血1 小时前
Vue 缓存之坑,变量赋值方式和响应式数据
前端·vue.js·缓存
涛涛ing2 小时前
2026 上半年,前端圈已经炸了五次
前端
hunterandroid2 小时前
Android 后台任务可靠性排查:从 WorkManager 观测到失败重试闭环
android·前端
skiyee2 小时前
🔥 oiyo & unibest = 又新又好的 uniapp 模板
前端·uni-app