使用el-amap-info-window遇到的问题

使用的这个库https://github.com/yangyanggu/vue-amap

想要滚动amapInfoWindow里的内容,但不触发地图缩放

默认滚动amapInfoWindow里的内容,会触发地图缩放。看了C站一个大佬的文章解决了。

amapInfoWindow会自动滚动到顶部

我的amapInfoWindow里面用了el-table,并且el-table里的每一行都加了勾选框。勾选后,amapInfoWindow会自动滚动到顶部。

我的解决思路是在上一个问题解决方案中的mousewheel监听中,记录弹框的scrollTop。

代码

复制代码
const infoWindowRef = ref()
const infoWindowObj = ref()
const infoWindowScrollTop = ref(0)
// 信息窗口打开后 el-amap-info-window的open回调方法
function handleInfoWindowOpen(){
  infoWindowObj.value = infoWindowRef.value.$$getInstance()
  // 弹框打开后地图禁止缩放
  infoWindowObj.value.on('mouseover', () => mapObj.value.setStatus({ zoomEnable: false }))
  infoWindowObj.value.on('mouseout', () => {
    mapObj.value.setStatus({ zoomEnable: true })
  })
  infoWindowObj.value.on('mousewheel', (e) => {
    const { originEvent } = e
    document.querySelector('.amap-info-content').scrollTop -= originEvent.wheelDelta / 5
    // 监听滚动高度
    infoWindowScrollTop.value = document.querySelector('.amap-info-content').scrollTop
  })
}

// 刷新table,防止滚动条跑到最上面
function refreshTable() {
  setTimeout(() => {
    document.querySelector('.amap-info-content').scrollTop = infoWindowScrollTop.value
  }, 0)
}

// 勾选框回调方法
function handleSelect(selection, row) {
  refreshTable()
  ......
  其他逻辑
 }
相关推荐
疯狂SQL2 小时前
JWT 在线解码、验签、生成一篇讲透:附前端实现、工具架构与在线体验地址
javascript·jwt·编解码·jwt测试
前端一小卒2 小时前
不手写代码的第 30 天,我才明白前端这个岗位还剩什么
前端·javascript·ai编程
Ajie'Blog2 小时前
Copilot Agent Tasks API 开放:AI 编程开始进入后台任务时代
服务器·前端·javascript·人工智能·copilot·ai编程
老毛肚3 小时前
jeecgboot vue TS & 模板化 04
前端·javascript·vue.js
晓13133 小时前
【Cocos Creator 2.x】篇——第二章 入门
javascript·游戏引擎
Electrolux5 小时前
[onlyoffice-v9]纯前端怎么实现编辑预览office
前端·javascript·github
VidDown5 小时前
Webhook 调试器:让第三方回调“原形毕露”
java·开发语言·javascript·编辑器·postman
kyriewen5 小时前
我读了一遍 Babel 编译后的 async/await,终于搞懂了它的原理(附 20 行手写实现)
前端·javascript·面试
半岛@少年7 小时前
都是JS,CJS和ESM有什么区别?
javascript·esm·前端模块化·cjs
想吃火锅10057 小时前
【leetcode】165.比较版本号js
javascript·算法·leetcode