openlayers禁用鼠标滚轮放大、拖拽事件并设置为只有按住Ctrl键才可以执行放大拖拽操作

禁用openlayers鼠标滚轮放大、拖拽移动地图设置这两行代码即可:

复制代码
new Map({
      interactions: defaults({ dragPan: false, mouseWheelZoom: false }),
})

或者设置只允许按住Ctrl键才可以操作

复制代码
import { DragPan, MouseWheelZoom, defaults } from "ol/interaction.js";
import { platformModifierKeyOnly } from "ol/events/condition.js";

const map = new Map({
      interactions: defaults({ dragPan: false, mouseWheelZoom: false }).extend([
        new DragPan({
          condition: function (event) {
            return (
              // 检查是否有两个触点,或者按下了ctrl键
              this.getPointerCount() === 2 || platformModifierKeyOnly(event)
            );
          },
        }),
        new MouseWheelZoom({
          condition: platformModifierKeyOnly,
        }),
      ]),
      layers: [
        new TileLayer({
          source: new OSM(),
        }),
      ],
      target: "map",
      view: new View({
        center: [0, 0],
        zoom: 2,
      }),
    });
  • new MouseWheelZoom({ condition: platformModifierKeyOnly }) 用于创建一个鼠标滚轮缩放交互
  • condition是一个配置项,用于指定触发缩放的条件。
  • platformModifierKeyOnly是一个条件函数,仅在按住平台修饰键(如 Ctrl 键)时返回 true
相关推荐
anyup20 小时前
🔥2026最推荐的跨平台方案:H5/小程序/App/鸿蒙,一套代码搞定
前端·uni-app·harmonyos
雮尘21 小时前
如何在非 Claude IDE (TARE、 Cursor、Antigravity 等)下使用 Agent Skills
前端·agent·ai编程
icebreaker21 小时前
Weapp-vite:原生模式之外,多一种 Vue SFC 选择
前端·vue.js·微信小程序
icebreaker21 小时前
重走 Vue 长征路 Weapp-vite:编译链路与 Wevu 运行时原理拆解
前端·vue.js·微信小程序
wuhen_n21 小时前
代码生成:从AST到render函数
前端·javascript·vue.js
Lee川21 小时前
从异步迷雾到优雅流程:JavaScript异步编程与内存管理的现代化之旅
javascript·面试
喝咖啡的女孩21 小时前
浏览器前端指南
前端
wuhen_n21 小时前
AST转换:静态提升与补丁标志
前端·javascript·vue.js
喝咖啡的女孩21 小时前
浏览器前端指南-2
前端
cxxcode21 小时前
从 V8 引擎视角理解微任务与宏任务
前端