首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

每天一个小技巧:实现自定义右键菜单(Context Menu) contextmenu 事件监听构造菜单显示菜单隐藏菜单

// 菜单点击回调 }] } 通过遍历 options.menus 生成菜单列表,并挂载到 body 中,并最终返回菜单的实例: function createMenu() { const...("li"); li.textContent = menu.name; li.onclick = menu.onClick; ul.appendChild(li);...} } const body = document.querySelector("body"); body.appendChild(ul); return ul; } 创建菜单的主要逻辑就完成了...显示菜单 当我们右击页面时,获取到鼠标的坐标,设置菜单为固定定位(position: fixed),并将其左上角位置设置为鼠标坐标,以实现菜单在鼠标点击位置的弹出: function showMenu(...最后,当我们点击页面中的其他区域时需要将菜单隐藏: function hideMenu(e) { const menus = menuSinglton.getInstance(); menus.style.display

6.3K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    9.13笔记

    一、无序列表(ul) 1.内部必须有子标签li>li> 2.ul自带内外边距,还有一个标签、 并集选择器body,ul,p{                                  ...:none(空)/circle(空心圆)/disc(实心圆)/square(正方形)    } 二、Ol有序列表 1.内部必须有子标签li>li> 2.天生自带内外边距 Ol与ul不停之处在于前面的符号...li  tyle=”A/a/1/I> 三、自定义列表 自定义列表 内容 小标题 列表能做什么? 做二级菜单,做导航。...width+border*2+padding*2+margin*2 一个表情的实际高度为height+padding-top+padding-bottom+2*border 两个相邻的块级同时margin时,...二者转换 块级转行级(display:inline;) 行级转块级(display:block;) 行级块元素(display:inline-block;){可以设置行高、可以在一行、margin可以随意使用

    31420

    JavaScript 实现自定义鼠标右键上下文菜单

    (二)contextmenu 事件contextmenu 事件专门用于处理鼠标右键菜单的显示。当用户在页面上点击鼠标右键时,会触发该事件。...例如,当用户在页面的某个特定区域点击右键时,我们可以通过监听 contextmenu 事件,根据该区域的功能特点显示与之相关的自定义菜单。...li id="delete">删除li> ul>在这个例子中,#custom-menu是菜单的容器,.hidden类用于控制菜单的显示和隐藏。...当事件触发时,调用event.preventDefault()阻止默认右键菜单显示。接着,获取鼠标右键点击的位置(event.pageX和event.pageY),并将菜单的位置设置为该位置。...最后,移除.hidden类以显示菜单。另外,我们还监听了click事件,当用户点击页面其他地方时,隐藏自定义菜单。

    10110

    JavaScript笔记(17)

    事件委托的作用 我们只操作了一次DOM,提高了程序的性能 那我们可以这么做,给ul加上点击事件: 但是我们可以看到点击li的时候也会弹出警示框,这是为什么呢?...也就是说,由于是冒泡阶段,所以是按照 li->ul->body->html->document的顺序查找的,由于在li中没有找到触发事件,就向上一级(ul)寻找触发事件,ul设置了触发事件,所以会弹出警示框...,但由于点击的是li,e.target是li,所以li的背景会变成粉红色....常用的鼠标事件 1.禁止鼠标右键菜单 contextmenu主要控制应该何时显示上下文菜单,主要用于程序员取消默认的上下文菜单.比如取消显示框选文本后点击右键的复制 这样就不能右键复制了,...,只要按下's'键,光标就能回到搜索框: 贴一下我一开始的做法: 但是出现了问题:当我按下s时,s也被输进去了,这不是我们要的效果 这是因为我们一直按着(即使时间很短),所以s也会被输进去

    80810

    React 下拉菜单 Dropdown Menu

    外部点击关闭下拉菜单 问题:当用户点击下拉菜单外部区域时,下拉菜单不会自动关闭。 解决方案:使用 useEffect 和 addEventListener 来监听外部点击事件。...3li> ul> )} ); }; export default Dropdown; 2....选项点击事件 问题:需要在选项点击时执行特定的操作。 解决方案:为每个选项添加点击事件处理器。...忽视外部点击关闭 易错点:忘记处理外部点击事件,导致下拉菜单无法正常关闭。 避免方法:使用 useEffect 和 addEventListener 监听外部点击事件。 2....避免方法:确保选项数据在组件重新渲染时正确传递。 3. 选项点击事件未绑定 易错点:选项点击事件未绑定,导致无法执行特定操作。 避免方法:为每个选项添加点击事件处理器,并确保事件处理器正确传递参数。

    12510

    JS-事件之鼠标、键盘都能控制的下拉选框效果

    ="5">Java特效li> ul> body,ul,li{ margin:0; padding:0;...:none; padding-left:10px; padding-right:10px;} 任务 一、 点击菜单中的向下三角展开菜单 提示: 1、点击三角时需阻止事件冒泡...,显示选中项 提示: 1、 声明一个全局的index变量初值为-1 2、 按下向下方向键时index递增,当递增至大于等于菜单选项的总数时恢复为0 3、 按下向上方向键时判断index,如若小于等于0则设为菜单选项的总数...,之后递减index 4、 根据index值将对应的选项设为当前(灰色背景) 5、 按下回车键时将对应选中的选项设为菜单标题,且将所有选项设为无背景,index恢复为-1,菜单收起 注意:没有任何选项被选中时...,按下回车键不做任何操作 三、鼠标滑过每个选项时高亮显示,离开时去掉背景,点击高亮选项时菜单标题改变 提示: 1.遍历所有a标签,绑定鼠标点击的事件 注意:要考虑到浏览器兼容,使用innerHTML

    3.2K50

    能用HTMLCSS解决的问题就不要使用JS!

    导航高亮 导航高亮是一种很常见的问题,包括当前页面的导航在菜单里面高亮和hover时高亮。你可以用js控制,但是用一点CSS技巧就可以达到这个目的,不需要使用JS。...鼠标悬浮时显示 鼠标悬浮的场景十分常见,例如导航的菜单: 以及在《Google地图开发总结》一文提到的,marker详情框的显示: 一般要把隐藏的东西如菜单作为hover目标的子元素或者相邻元素,才方便用...css控制,例如上面的菜单,是把menu当作导航的一个相邻元素: li class="user">用户li> li class="menu">    ul>        li>账户设置li>        li>登出li>    ul> li> menu在正常态下是隐藏的: .menu{    display: none; } 而当导航hover时显示: .user:hover...ul>    li>1li>    li>2li>    li>3li>ul> 第5行的意思就是选择li的第一个元素,并且它是倒数第二个元素,第6行的意思是选择前面有是第一个且是倒数第二个

    3K20

    能用HTMLCSS解决的问题就不要使用JS

    导航高亮 导航高亮是一种很常见的问题,包括当前页面的导航在菜单里面高亮和hover时高亮。你可以用js控制,但是用一点CSS技巧就可以达到这个目的,不需要使用JS。 ? ?...注意这个hover选择器特别好用,几乎适用于所有需要用鼠标悬浮时显示的场景。 2. 鼠标悬浮时显示 鼠标悬浮的场景十分常见,例如导航的菜单: ?...一般要把隐藏的东西如菜单作为hover目标的子元素或者相邻元素,才方便用css控制,例如上面的菜单,是把menu当作导航的一个相邻元素: li class="user">用户li>li class...="menu"> ul> li>账户设置li> li>登出li> ul>li> menu在正常态下是隐藏的: .menu{ display...ul> li>1li> li>2li> li>3li>ul> 第5行的意思就是选择li的第一个元素,并且它是倒数第二个元素,第6行的意思是选择前面有是第一个且是倒数第二个

    3.8K40
    领券