JavaScript

使用js制作右键菜单项

2019-03-03  本文已影响0人  前端纸飞机

实现自定义右键菜单我们需要清楚浏览器默认的右键菜单触发的基本过程

①:单击右键,菜单出现

②:菜单出现,鼠标箭头一直在菜单左上角

③:再换个位置点击右键,原菜单消失,新菜单出现在指定位置

④:点击左键,中键,菜单消失

以上为大致实现过程,不全面,仅供参考


也许文字过于抽象,我们来看看代码吧:

一、HTML结构:

注意:结构布局这一块的合理性,这是根据谷歌浏览器默认的右键菜单来布局的

二、css样式

注意:样式可以根据自己的喜好来

.rightmenu设置display:none是因为右键菜单本身是隐藏了因为点击了才出现,倘若不加这句,菜单会出现在页面的左上角,如图:

三、js实现

分析:

①:浏览器本身就有右键菜单,我们也要做右键菜单,所以应当阻止浏览器的右键

        这里可以用到preventDefault(),这个方法有着阻止默认事件的功能,科普一下,什么是默认事件:

例如:<a href="http:www.baidu.com">点我</>,可以知道这是可以跳转到百度的,所以是有个跳转时间的,这个事件我们没有去用js实现,他是默认的,所以称之为默认事件,同理,浏览器右键菜单。

②前面我们说了菜单出现,鼠标箭头一直在菜单左上角,这是怎么实现的呢,这涉及到event里面的事件发生坐标了,我们点击的位置就是我们右键点击事件发生的位置,可以用坐标来解释这个位置,clientX(事件发生点和可视区域的位置),offsetX(事件发生点和父级元素的位置),pageX(事件发生点和页面的位置),screenX(事件发生点和屏幕的位置),这里我们用offsetX/Y,因为我们是在BOW中点击,所以具体原因大家百度一下就直道了,我们还是看代码吧,代码里标注的很详细。

以上仅供参考,更多的功能实现都是差不多的原理,好了,结束了。

上一篇下一篇

猜你喜欢

热点阅读