现在做的项目中有一个功能是在创建的一个类似word document map的目录上右键时弹出菜单,弹出的菜单正好在鼠标单击事件发生的位置,这就存在了这个菜单的定位问题。
这个功能我首先是从ztree的一个右键功能例子中拷贝过来的,在ztree的例子中运行的好好的,但是粘贴到自己的页面中就怎么定位都不行,研究了很长时间,后来发现这个东西跟我的页面中的父层div的position属性有关,去掉position属性,运行可以成功,但是只要拖动滚动条就又不行了,反复研究最后才研究出问题所在,不禁调侃一句“这些小问题可别想考验强迫人的执着精神”,哈哈~
右键菜单是一个最初隐藏的,position为absolute的div,通过设置css的top和left属性完成定位,但是有个问题是,它会相对于最近的position为relative的父层div进行定位,若没有的话就相对于body定位了。我的页面中ztree外层有两个position为relative的父层div。最开始我按照ztree例子中那样做的,以event.clientX,event.clientY来设置menu div的left和top值,但是定位有很大的偏差,我尝试删除外层的div去模拟例子中的html格式,最后发现是受外层postion为relative这些div的影响,例子中是没有postion为relative的div的。于是我查资料,了解了相对定位和绝对定位的问题,然后知道menu div是相对于最近的position为relative的div进行定位的,而event.cliextX和event.clientY是相对于文档窗口的位移,那么我需要减去最近menu div最近的position为relative的div相对于文档窗口的位移(使用$("#bodydiv").offset().top和left获得),确实这样做的确成功了,但是新问题又出现了,那就是拖动滚动条的话定位又偏差了,这时候我有点怀疑event.clentX/Y和jquery的offset到底代表怎样的位移,回头研究例子中的定位,为什么它就不受滚动条的影响,最后才发现它的menu div外层是个iframe,所以它就可以直接使用鼠标事件发生点的位移作为menu div的坐标。最后,我通过$(document).scrollTop()和$(document).scrollLeft()获得滚动条的位移,然后加上这段位移,最后获得了准确定位。没啥困难的,只要你执着研究下去,并能使用灵活的方法!
相关推荐
环境:C# 2008 ...特效:左键单击按钮,在按钮左下角(可以自己定位)弹出ContextMenuStrip(弹出式菜单),右键单击无效(不弹出菜单)。 解压密码:lejun1984@163.com 原创辛苦,请大家支持我。欢迎大家来信交流
怎样使用右键菜单VB6.0源程序 弹出鼠标右键菜单,在文本框中点击鼠标右键, 你会发现弹出了右键菜单,选择"红色"即可改变背景色为红色, 选择"兰色"即可改变背景色为兰色。
Win10 系统通过双击本...点击后,首先会弹出来一个普通的 Powershell 窗口来执行命令,这个窗口会自动退出,然后会弹出 UAC 用户账户控制窗口,点击确定后,会弹出管理员模式的 Powershell 窗口,并定位到当前路径。
3.接下来“右击2057-替换资源-弹出‘替换位图于’对话框-点击‘打开新位图文件按钮’-弹出‘打开’对话框-定位找到你喜欢的bmp格式图片(大小任意,最好不要太大,以免右键图片显示不全,但一定要是24位bmp格式...
Win10系统通过双击本...点击后,首先会弹出来一个普通的 Powershell 窗口来执行命令,这个窗口会自动退出,然后会弹出 UAC 用户账户控制窗口,点击确定后,会弹出管理员模式的 Powershell 窗口,并定位到当前路径。
这是一款基于jQuery的自定义右键菜单,在树状结构的子节点(下级没有节点)上单击右键才会弹出自定义菜单,而且菜单是自动根据鼠标位置来定位的。当鼠标在菜单以外的任意空白处单击一下后会自动消失。这里想特别说明...
Win10系统通过双击本...点击后,首先会弹出来一个普通的 Powershell 窗口来执行命令,这个窗口会自动退出,然后会弹出 UAC 用户账户控制窗口,点击确定后,会弹出管理员模式的 Powershell 窗口,并定位到当前路径。
右键点 快捷方式 弹出菜单中 选择 定位源文件,直接在新窗口中,找到 源文件。 3、更改浏览器打开源文件的默认工具 设置 ultraedit 为 IE 查看源代码默认的工具,便于编辑。 4、系统登录后自动锁定桌面 使 远程...
产品型号列表导出、CODE列表导出,请在相应上方鼠标右键在弹出菜单选择即可 ,CODE直载在菜单》文件》通过CODE下载,在弹出对话框输入CODE回车即可,注意区分字母大小写(如CODE包含字母) 服务器切换在菜单》选项》...
0397单击右键弹出菜单 0398可以下拉的菜单 0399任务栏图盘弹出菜单 0400绘制渐变效果的菜单 0401将菜单项的字体设置为粗体 6.8工具栏和状态栏应用 0402带背景的工具栏 0403在工具栏中添加编辑框 0404具有提示功能...
一款真正意义上的MSSQL日志分析和浏览工具,直接解析LDF文件,支持SQL2008,SQL2005,SQL2000. 程序主要功能: 1:\l日志浏览....在对应的日志记录上右键,弹出菜单,点 <浏览数据> .可以查看事务删除的数据.
之前发布的版本好多人不会使用,最新版含有详细图文操作手册和恢复示例。 一款真正意义上的MSSQL日志分析和浏览工具,直接解析LDF文件,...在对应的日志记录上右键,弹出菜单,点 <浏览数据> .可以查看事务删除的数据.
禁止WebBrowser右键弹出菜单 禁止TWebBrowser图像显示 访问HTML的DOM不使用WebBrowser 如何填写空白(about:blank)页的表单 屏蔽WebBrowser的Javascript 创建运行时的IHTMLDocument而不在WebBrowser内 HOOK ...
提示 使用 Spy++ 时,在许多实例中都可以单击鼠标右键显示常用命令的弹出式菜单。命令是否可用取决于指针的位置。例如,如果在指向窗口视图中的某项时单击并且选定的窗口可见,则弹出式“突出显示”菜单项将导致...
2、选中存储过程,右键弹出菜单,选择 测试 3、出现测试脚本页面,输入动态参数值,点击左上角的标志,进入调式模式 4、出现调试操作按钮界面(依次:运行 单步进入 单步跳过 单步退出 运行到下一个异常) 5、...
实例005 在控件上单击右键弹出菜单 实例006 个性化的弹出菜单 实例007 任务栏托盘弹出菜单 1.3 工具栏应用实例 实例008 带背景的工具栏 实例009 带图标的工具栏 实例010 带下拉...
实例005 在控件上单击右键弹出菜单 实例006 个性化的弹出菜单 实例007 任务栏托盘弹出菜单 1.3 工具栏应用实例 实例008 带背景的工具栏 实例009 带图标的工具栏 实例010 带下拉...
实例005 在控件上单击右键弹出菜单 实例006 个性化的弹出菜单 实例007 任务栏托盘弹出菜单 1.3 工具栏应用实例 实例008 带背景的工具栏 实例009 带图标的工具栏 实例010 带下拉...
实例005 在控件上单击右键弹出菜单 实例006 个性化的弹出菜单 实例007 任务栏托盘弹出菜单 1.3 工具栏应用实例 实例008 带背景的工具栏 实例009 带图标的工具栏 实例010 带下拉...
实例005 在控件上单击右键弹出菜单 实例006 个性化的弹出菜单 实例007 任务栏托盘弹出菜单 1.3 工具栏应用实例 实例008 带背景的工具栏 实例009 带图标的工具栏 实例010 带下拉...