问题

原生的jtopo滚轮缩放在mac上用触控板触发时,会出现疯狂缩放的现象,同时还会触发浏览器的默认事件(页面前进、页面后退)

参考

地址:https://adom.as/javascript-mouse-wheel/

/** This is high-level function.* It must react to delta being more/less than zero.*/
function handle(delta) {if (delta < 0)…;else…;
}/** Event handler for mouse wheel event.*/
function wheel(event){var delta = 0;if (!event) /* For IE. */event = window.event;if (event.wheelDelta) { /* IE/Opera. */delta = event.wheelDelta/120;} else if (event.detail) { /** Mozilla case. *//** In Mozilla, sign of delta is different than in IE.* Also, delta is multiple of 3.*/delta = -event.detail/3;}/** If delta is nonzero, handle it.* Basically, delta is now positive if wheel was scrolled up,* and negative, if wheel was scrolled down.*/if (delta)handle(delta);/** Prevent default actions caused by mouse wheel.* That might be ugly, but we handle scrolls somehow* anyway, so don't bother here..*/if (event.preventDefault)event.preventDefault();event.returnValue = false;
}/** Initialization code. * If you use your own event management code, change it as required.*/
if (window.addEventListener)/** DOMMouseScroll is for mozilla. */window.addEventListener('DOMMouseScroll', wheel, false);
/** IE/Opera. */
window.onmousewheel = document.onmousewheel = wheel;

改变

修改后不会出现疯狂缩放,同时也不会触发浏览器事件

                    // 改写 滚轮缩放var event = a;// retrieve deltavar delta = 0;if (event.wheelDelta) {/* IE/Opera. */delta = event.wheelDelta / 120;} else if (event.detail) {/* Mozilla case. */// In Mozilla, sign of delta is different than in IE.// Also, delta is multiple of 3.delta = -event.detail / 3;}// If delta is nonzero, handle it.// Basically, delta is now positive if wheel was scrolled up,// and negative, if wheel was scrolled down.if (delta !== 0) {// calculate the new scalevar scale = mytest.scene.scaleX;var zoom = delta / 10;if (delta < 0) {zoom = zoom / (1 - zoom);}scale *= 1 + zoom;// apply the new scalemytest.scene.zoom(scale, scale);}// Prevent default actions caused by mouse wheel.event.preventDefault();//     原滚轮缩放//    a.preventDefault();//    n.dispatchEventToScenes("mousewheel", b),  // 注意: 这段代码注释的话将不会触发jtopo的mousewheel事件//        n.dispatchEvent("mousewheel", b), // scene //    null != n.wheelZoom && (a.preventDefault ? a.preventDefault() : (a = a || window.event, a.returnValue = !1), 1 == n.eagleEye.visible && n.eagleEye.update()) // 鹰眼的缩放

改写jtopo滚轮缩放代码相关推荐

  1. 正交相机下实现滚轮按钮拖动,滚动滚轮缩放的功能

    实现了一个功能,鼠标滚轮键按下可以拖动视野内的物体全体(其实是相机自己在移动),滚动滚轮可以缩放内容(其实是改变相机视野大小) 效果如下 代码奉上 1 using UnityEngine; 2 usi ...

  2. 百度地图滚轮缩放,所在点偏移问题

    提出问题 <!DOCTYPE html> <html><head><meta http-equiv="Content-Type" cont ...

  3. 如何使用Google Maps API禁用鼠标滚轮缩放

    我正在使用Google Maps API(v3)在页面上绘制一些地图. 我想做的一件事是在地图上滚动鼠标滚轮时禁用缩放,但我不确定如何. 我已禁用scaleControl(即删除了缩放UI元素),但这 ...

  4. vscode缩放代码_Visual Studio Code 缩放设置

    Windows下的软件的操作都很类似,所以刚开始使用vs code的时候习惯性地使用Ctrl+鼠标滚轮进行缩放,然而在vs code上不管用. 在vs code中有两类缩放: 一.整体缩放:包括菜单栏 ...

  5. Lightbox改造——支持滚轮缩放

    在做文章类型的web页时,经常会遇到要点开看大图的需求,LightBox2则是在众多产品中比较优秀的一款Jquery插件.配置就不细说了,今天我主要要分享的是:如何在点开大图后,可以通过鼠标滚轮来缩放 ...

  6. C#pictureBox滚轮缩放与拖拽

    简要描述: 说到底还是对图片的控件进行缩放.及缩放picturebox控件,该图片控件缩放的最大范围为其依赖的panel(或者其他)控件决定. 1.通过鼠标滚轮事件MouseWheel进行缩放,往前滚 ...

  7. 【Java AWT 图形界面编程】使用鼠标滚轮缩放 Canvas 画布中绘制的背景图像 ( 绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩放 + 以当前鼠标指针位置为缩放中心 示例 )

    文章目录 一.鼠标滚轮缩放的中心点设置为当前鼠标中心点 - 要点分析 1.保存当前鼠标指针指向的位置 2.根据鼠标指针指向的位置以及比例重新计算图片位置 二.绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩 ...

  8. android h5 禁止缩放,vue h5移动端禁止缩放代码

    vue h5移动端禁止缩放代码 安卓 在index.html里面写 ios 在APP.vue里面写 window.onload = function() { document.addEventList ...

  9. Winform中实现ZedGraph滚轮缩放后自动重新加载数据

    场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

  10. Winform中设置ZedGraph鼠标滚轮缩放的灵敏度以及设置滚轮缩放的方式(鼠标焦点为中心还是图形中心点)

    场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...

最新文章

  1. Win10:你需要来自XXX的权限才能对此文件夹进行更改
  2. List------Linked 链表
  3. callapplybind的js实现以及应用
  4. 业务专题篇:如何用数据评价某次活动?
  5. WebApiClient的JsonPatch局部更新
  6. powershell如何ping
  7. 如何让DevExpress.TreeList单元格中的自定义控件包含标签
  8. mysqlbinlog
  9. 按指定字符分割字符串
  10. 大数据行业包含的岗位有哪些
  11. 盘点20条Allegro操作指令,老司机都不一定掌握的技能
  12. 《微习惯:简单到不可能失败的自我管理法则》读书小结
  13. Redis发布订阅[西橙先生]
  14. GoLand No Tests Were Run : 不能使用 fmt.Printf() BUG
  15. IM即时通讯开发,聊天软件APP搭建,私有云部署
  16. [clear] python 种子转磁力链
  17. mac上如何彻底删除软件
  18. 5G套餐资费会越来越便宜,但需注意“限速机制”
  19. 多媒体计算机设计原则,多媒体课件的设计原则
  20. Day02:基本IO操作

热门文章

  1. java怎么实现微博评论_关于微博评论功能的设计与思考
  2. DirectShow介绍
  3. 二手笔记本测试软件,想买二手笔记本?先学会这些检测方法才最大限度不被坑...
  4. 对接湖南CA使用U_KEY登录
  5. 计算机联机玩游戏的操作方法,3种建立局域网的方式,不用网也可以联机玩游戏-局域网设置...
  6. 关于MAC的pkg和mpkg的分别
  7. 计算机硬盘没容量了,电脑硬盘容量怎么突然变少了
  8. JavaScript-68:数组的使用
  9. MSN 通信协议学习笔记(转)
  10. 海康威视在linux下使用笔记——ros驱动相机