jquery-11 如何制作鼠标右键菜单

一、总结

一句话总结:核心原理:找到右键菜单事件contextmenu,return false去掉默认事件,然后判断用户是否点的右键,然后在鼠标的位置显示菜单。菜单弄成绝对定位,开始时设置为不显示。

1、右键菜单事件是什么?

contextmenu

40 $(document).contextmenu(function(event){

2、如何阻止默认的右键菜单事件?

在事件中return false可以阻止事件的默认行为

40 $(document).contextmenu(function(event){
41 x=event.clientX;
42 y=event.clientY;
43
44 btn=event.button;
45
46 if(btn==2){
47 $('ul').show().css({'left':x+'px','top':y+'px'});
48 return false;
49 }
50 });

3、如何使用事件发生的event对象?

事件发生会产生一个event对象,将它作为参数传递给匿名函数,即可在匿名函数中操作它

40 $(document).contextmenu(function(event){
41 x=event.clientX;
42 y=event.clientY;

4、如何获取鼠标在屏幕上面的位置?

有一个事件发生,将它的事件对象传递给匿名函数,在匿名函数中调用这个event对象的clientX和clientY即可获取它的鼠标位置

40 $(document).contextmenu(function(event){
41 x=event.clientX;
42 y=event.clientY;

5、如何判断用户是否点右键?

获取event对象的button属性,属性值为2即是鼠标右键,0左键,1滚轮。

44     btn=event.button;
45
46 if(btn==2){

6、如何将元素放在鼠标右键的位置?

先获取鼠标的位置(event对象的clientX和clientY属性),然后设置元素绝对定位,然后设置left和top属性即可

40 $(document).contextmenu(function(event){
41 x=event.clientX;
42 y=event.clientY;
43
44 btn=event.button;
45
46 if(btn==2){
47 $('ul').show().css({'left':x+'px','top':y+'px'});
48 return false;
49 }
50 });

二、如何制作鼠标右键菜单

 <!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>index</title>
<style>
*{
margin:0px;
padding:0px;
} ul{
width:100px;
height:150px;
background: #ccc;
border-radius:10px;
position: absolute;
display: none;
} ul li{
text-align: center;
color:#fff;
font-weight: bold;
line-height: 25px;
}
</style>
<script src="jquery.js"></script>
</head>
<body>
<ul>
<li><a href='http://www.yzmedu.com' target='_blank'>云知梦</a></li>
<li>第一菜单</li>
<li>第一菜单</li>
<li>第一菜单</li>
<li>第一菜单</li>
</ul>
</body>
<script>
$(document).contextmenu(function(event){
x=event.clientX;
y=event.clientY; btn=event.button; if(btn==2){
$('ul').show().css({'left':x+'px','top':y+'px'});
return false;
}
});
</script>
</html>
 

jquery-11 如何制作鼠标右键菜单的更多相关文章

  1. jQuery自定义Web页面鼠标右键菜单

    jQuery自定义Web页面鼠标右键菜单 右键菜单是固定的,很多时候,我们需要自定义web页面自定义菜单,指定相应的功能. 自定义的原理是:jQuery封装了鼠标右键的点击事件(“contextmen ...

  2. Jquery如何禁止鼠标右键菜单

    jquery中使用contextmenu事件,如果返回true,则允许右键菜单:如果返回false,则禁止右键菜单 导入文件 <script type="text/javascript ...

  3. OpenLayers 3 之 加入地图鼠标右键菜单

    加入右键菜单,首先我们要监听鼠标右键点击的操作,我们知道鼠标右键事件名是 contextmenu.当鼠标在 html 元素之上,点击鼠标右键,便会触发 contextmenu 事件,在 context ...

  4. Qt creator 创建鼠标右键菜单 (不新建类)

    界面 步骤 打开你的界面文件并选中你要添加右键的控件,选择“CustomContextMenu” 右键选择“转到槽...” -> customContextMenuRequested 插入下面代 ...

  5. 如何在C#添加鼠标右键菜单

    C#添加鼠标右键方法步骤: 1 选中要添加右键功能的Form或者控件,打开控件的设计页面. 2 从工具箱中找到ContextMenuStrip控件,将这个控件拖曳到Form或者控件的设计页面上.这时系 ...

  6. 将EmEditor加入到鼠标右键菜单

    在清理系统的时候,无意中将EmEditor的鼠标右键功能给清理掉了,在EmEditor的配置中又没有找到如何加入到鼠标右键菜单的方法,只好使用导入注册表功能了,以下的代码,拷贝到记事本中,保存为EmE ...

  7. JAVA GUI学习 - JPopupMenu鼠标右键菜单组件学习

    public class JPopmenuKnow { public void test() { //为表格添加鼠标右键菜单 JMenuItem jMenuItemFileInfo = new JMe ...

  8. WinForm -- 为TextBox文本框添加鼠标右键菜单

    WinForm -- 为TextBox文本框添加鼠标右键菜单 1. 新建一个WinForm项目,放置一个TextBox控件 2. 从工具箱拖进来一个ContextMenuStrip 3. 将TextB ...

  9. Qt532.【转】Qt创建鼠标右键菜单

    ZC:可以通过 设置  (QWebView*)->setContextMenuPolicy(NoContextMenu); 来关闭 QWebView的默认右键菜单 Qt创建鼠标右键菜单_疯华正茂 ...

随机推荐

  1. Windows Server 2016 关闭Internet Explorer增强的安全配置

    Windows Server 2016 关闭Internet Explorer增强的安全配置 IE11 默认启用 Internet Explorer 增强的安全配置,浏览网页时这个提示十分频繁,是不是 ...

  2. Maven中央仓库信息速查

    http://maven.outofmemory.cn/

  3. POJ 1082 Calendar Game

    Adam and Eve enter this year's ACM International Collegiate Programming Contest. Last night, they pl ...

  4. ORA-10458: standby database requires recovery

    搭建DG最后一步打开时报错如下:   SQL> alter database open read only; alter database open read only * ERROR at l ...

  5. 洛谷P3613 睡觉困难综合征(LCT)

    题目: P3613 睡觉困难综合症 解题思路: LCT,主要是维护链上的多位贪心答案,推个公式:分类讨论入0/1的情况,合并就好了(公式是合并用的) 代码(我不知道之前那个为啥一直wa,改成结构体就好 ...

  6. Servlet 规范笔记—servlet概念及结构

     Servlet, 这个词对java程序员并不陌生,我想几乎每个java程序员在学习J2EE知识时,首先学习的就是servlet,这是一种正确的学习方式,在我看来Servlet是J2EE的基础,要熟练 ...

  7. windows服务插件利器-新生命组件XAgent使用心得

    1.简单介绍 XAgent为大石头带领下的新生命团队自己开发的一个.Net下的常用的Windows服务管理组件利器,通过在控制台中简单的输入1,2,3,4,5等数字可以实现一步安装.卸载Windows ...

  8. 104.tcp多线程读写实现群聊

    客户端: #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include <w ...

  9. 原生js大总结九

    81.ES6的Symbol的作用是什么?   ES6引入了一种新的原始数据类型Symbol,表示独一无二的值   82.ES6中字符串和数组新增了那些方法   字符串       1.字符串模板    ...

  10. [D3] Adding Arrows to Links

    svg.append('defs').selectAll('marker') .data(['end']).enter() .append('marker') .attr('id', String) ...