缩放时上下文菜单偏离中心
Context menu off center when zoomed
我使用node webkit的菜单API构建了一个右键单击上下文菜单。我遇到的问题是,当我增加页面的缩放时,比如从1到1.4,上下文菜单会偏离鼠标光标的中心。还有其他人遇到过这个问题或者有解决办法吗?
我是这样生成我的菜单的:
// Load native UI library
var gui = require('nw.gui');
// Create an empty menu
var menu = new gui.Menu();
// Add some items
menu.append(new gui.MenuItem({ label: 'Item A' }));
menu.append(new gui.MenuItem({ label: 'Item B' }));
menu.append(new gui.MenuItem({ type: 'separator' }));
menu.append(new gui.MenuItem({ label: 'Item C' }));
// Remove one item
menu.removeAt(1);
// Popup as context menu
$(document).on("contextmenu", function() {
menu.popup();
})
这里是API参考的链接:https://github.com/nwjs/nw.js/wiki/menu
我们可以针对缩放级别调整鼠标位置,基于:
- https://github.com/nwjs/nw.js/issues/2023 issuecomment - 71005188
- https://github.com/nwjs/nw.js/wiki/menu menupopupint-x-int-y
// Load native UI library
var gui = require('nw.gui');
// window (needed to get zoom level)
var win = gui.Window.get();
// Create an empty menu
var menu = new gui.Menu();
// Add some items
menu.append(new gui.MenuItem({ label: 'Item A' }));
menu.append(new gui.MenuItem({ label: 'Item B' }));
menu.append(new gui.MenuItem({ type: 'separator' }));
menu.append(new gui.MenuItem({ label: 'Item C' }));
// Remove one item
menu.removeAt(1);
// Popup as context menu
$(document).on("contextmenu", function(ev) {
// transform zoom level into factor
var zoomFactor = Math.pow(1.2, win.zoomLevel);
menu.popup(
Math.round(zoomFactor * ev.clientX),
Math.round(zoomFactor * ev.clientY)
);
})
相关文章:
- 使用JQuery的动态上下文菜单
- JQuery在单击正文时隐藏上下文菜单
- JQuery上下文菜单显示/隐藏问题
- 防止在移动Safari(iPad/iPhone)中长按/长按默认上下文菜单
- d3防止在上下文菜单上触发mouseout
- 何时可以;我的用户脚本在Javascript中触发右键单击(上下文菜单)
- 使用JSTree上下文菜单捕获新创建的节点
- 在GXT中激活上下文菜单时,如何保持选中的文本高亮显示?(EXT GWT 2.x)
- HTML5上下文菜单-当菜单项被点击时,访问最初被点击的元素
- 可替代多级上下文菜单
- 如何在鼠标悬停时显示带有拉斐尔元素(圆、线)的上下文菜单
- 在上下文菜单项单击上显示侧边栏/弹出窗口的最佳方法是什么
- 如何使用jstree删除上下文菜单中的编辑选项
- 如何使用Windows Phone在IE上禁用上下文菜单(保存和共享照片)
- TinyMCE 在上下文菜单中创建子菜单
- D3 上下文菜单,更改所选节点颜色
- 剑道上下文菜单 - 防止在鼠标按下时关闭
- 将上下文菜单附加到大量图形点
- API Google Maps Javascript在上下文菜单中调用事件侦听器
- Firefox Add-on-sdk:右键单击子菜单上下文以显示面板