桌面 html 自定义,【极简壁纸 - 技术分享】html js自定义右键菜单方法
自定义右键菜单
极简壁纸2.0 地址: https://bz.zzzmh.cn 目前进度已开发到95%
近期有时间就会分享一下,我在开发过程中用到的一些小技术的简单用法和demo
关于html js右键菜单
原理非常简单,监听鼠标右键事件,在事件中执行ev.preventDefault()就可以屏蔽原本的浏览器默认右键菜单,代码如下。
window.oncontextmenu = function (ev) {
ev.preventDefault();
}
然后从鼠标当前位置,画一个自定义的右键菜单div,就可以实现一个简单的自定义右键菜单了。
- 下载
- 删除
- 移动到...
- 重命名
// 先用e兼容不同浏览器
let e = ev || event
/阻止默认行为
e.preventDefault();
//记录当前的坐标(x轴和y轴)
let x = e.clientX;
let y = e.clientY;
// 显示邮件菜单
let menu = document.querySelector('#list');
menu.style.left = x + 'px';
menu.style.top = y + 'px';
menu.style.display = 'block';
百度到的例子就是这些,后面我再说补充下我的改进
默认右键菜单是出现在鼠标所在位置的右下方,但是右下方的空间不一定足够显示右键菜单,如果右边不够自动转成左边,下面不够转上面,这部分代码如下。
const clientWidth = document.documentElement.clientWidth;
const clientHeight = document.documentElement.clientHeight;
if (e.clientY > 40) {
if (clientHeight - e.pageY >= menu.offsetHeight) {
menu.style.top = e.pageY + 'px';
} else {
menu.style.top = (e.pageY - menu.offsetHeight) + 'px';
}
if (clientWidth - e.pageX >= menu.offsetWidth) {
menu.style.left = e.pageX + 'px';
} else {
menu.style.left = (e.pageX - menu.offsetWidth) + 'px';
}
menu.style.display = 'block';
}
可以通过ev.target来获取到右击的目标的元素,从而实现不同元素不同右键菜单
- 下载
- 删除
- 移动到...
- 重命名
- 查看
- 关于
- 刷新
- 反馈
// 先用e兼容不同浏览器
let e = ev || event
// 判断data-type参数来获取不同的右键菜单用于显示
if (e.target && e.target.getAttribute('data-type') == 'target1') {
menu = document.querySelector('#list1');
} else if (e.target && e.target.getAttribute('data-type') == 'target2') {
menu = document.querySelector('#list2');
}
任意鼠标点击事件都要隐藏掉正在显示中的右键菜单,否则用户不选择菜单内容,而是继续操作其他区域的话,菜单会一直悬浮在那边。
window.onclick = function () {
menu.style.display = 'none';//再次点击时隐藏菜单框
}
END
目前就是这些,之后还会分享一些开发极简壁纸时学到的技术。
也欢迎访问极简壁纸2.0 地址: https://bz.zzzmh.cn
桌面 html 自定义,【极简壁纸 - 技术分享】html js自定义右键菜单方法相关推荐
- 极简壁纸_桌面壁纸推荐_20190120
由于这里发图片会被压缩质量,建议访问极简壁纸官网下载高清大图 极简壁纸官网 : https://bz.zzzmh.cn (9102年最潮壁纸网站) 由于这里发图片会被压缩质量,建议访问极简壁纸官网下载 ...
- 【极简壁纸】桌面壁纸美图推荐_2019/01/23
极简壁纸是一个期望呈现出简单高效美观的壁纸网站. 推荐一批近期的壁纸 (图片发到这里会被压缩质量,建议访问网站下载原图) 网站链接:https://bz.zzzmh.cn (图片发到这里会被压缩质量, ...
- 【极简壁纸】桌面壁纸美图推荐_2019/01/24
极简壁纸是一个期望呈现出简单高效美观的壁纸网站.推荐一批新更的壁纸 网站链接:https://bz.zzzmh.cn 网站链接:https://bz.zzzmh.cn (图片发到这里会被压缩质量,建议 ...
- 【极简壁纸】桌面壁纸美图推荐_2019/01/22
极简壁纸是一个期望呈现出简单高效美观的壁纸网站. 推荐一批近期的壁纸 (图片发到这里会被压缩质量,建议访问网站下载原图) 网站链接:https://bz.zzzmh.cn (图片发到这里会被压缩质量, ...
- 【极简壁纸】桌面壁纸美图推荐_2019/01/27
极简壁纸是一个期望呈现出简单高效美观的壁纸网站. 网站链接:https://bz.zzzmh.cn 推荐几张最新更新的壁纸 (图片发到这里会被压缩质量,建议访问网站下载原图) 网站链接:https:/ ...
- 网站推荐-极简壁纸网站
引言 电脑.手机.平板,作为我们每天都要使用的工具.大部分时间我们都停留在这些设置的主页,挑选一份自己喜欢的壁纸尤其重要. PC端的壁纸工具很多,但是作为极简主义者,如果为了一个功能点就要下载一个软件 ...
- 【极简壁纸】简单高效美观的壁纸网站
极简壁纸是一个期望呈现出简单高效美观的壁纸网站. 灵感来源是爱壁纸APP,图片来源是wallhaven.cc 极简壁纸网站建立于2018年5月1日. 起初是只是由于站长个人兴趣爱好,酷爱找各种壁纸. ...
- 【极简壁纸】简单高效美观的壁纸网站 1
极简壁纸是一个期望呈现出简单高效美观的壁纸网站. 灵感来源是爱壁纸APP,图片来源是wallhaven.cc 极简壁纸网站建立于2018年5月1日. 起初是只是由于站长个人兴趣爱好,酷爱找各种壁纸. ...
- 装了svn桌面右键没有_右键菜单没有svn选项怎么办|win7 svn没有右键菜单怎么解决|svn添加到右键菜单方法...
2016-05-31 11:43:55 最近,有位使用Windows10系统的朋友在下载了一个软件后,发现无法打开,显示为"XXX.RAR"格式的压缩文件,可是点击右键也没有发现& ...
最新文章
- scala学习手记34 - trait方法的延迟绑定
- SpringMVC——自定义拦截器、异常处理以及父子容器配置
- 不同工作组能访问吗_“辣椒”的辣味从哪里来?有方法能测量不同辣椒的辣度吗?...
- 跨链(6)波卡Polkadot “系统框架”
- Visual C++——黄维通《 Visual C++面向对象与可视化程序设计》——习题4-11
- STL常用的算术和生成算法
- Linux 内核源代码的目录结构
- php cdi_DI / CDI –基础
- Android中定时器的3种实现方法
- Silevo需征收进口关税?美光伏巨头各执一词
- php 判断是否在指定时间段范围内
- 2020爱分析·智能通讯云厂商全景报告
- MySQL可视化管理工具之SQLyog的简介以及使用方法
- OpenGL Assimp的骨骼动画
- android7.1修改默认休眠时间为1分钟
- 用户故事 | 工商银行核心应用 MySQL 治理实践
- 关于“硬件工程师工资不高”的几个真相
- linux igmp 属于那层协议,igmp协议属于哪一层
- 05-用户和组以及权限
- G4L-硬盘对拷工具
热门文章
- NLP自然语言处理入门学习笔记(一)
- NVIDIA英伟达jetson xavier nx天线如何安装
- python圆面积的计算_Python编程题:输入圆半径,输出圆面积?python计算圆面积教程...
- 华为公关事故处罚流出;FF中国分家细节曝光;苹果股价下跌拖累美股|雷锋早报... 1
- 透视软件,好骚啊!!!
- C语言数字图像处理进阶---7 Sketch Filter
- TCP/IP超详细总结
- mysql数据库精确匹配搜索_mysql 模糊搜索方法
- 友尽妙招:用Python解“智力游戏”
- linux sudo yum命令详解,每天一个Linux命令之sudo命令详解