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


    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 });

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

     1 <!doctype html>
     2 <html>
     3 <head>
     4     <meta charset="utf-8">
     5     <title>index</title>
     6     <style>
     7         *{
     8             margin:0px;
     9             padding:0px;
    10         }
    11 
    12         ul{
    13             width:100px;
    14             height:150px;
    15             background: #ccc;
    16             border-radius:10px;
    17             position: absolute;
    18             display: none;
    19         }
    20 
    21         ul li{
    22             text-align: center;
    23             color:#fff;
    24             font-weight: bold;
    25             line-height: 25px;
    26         }
    27     </style>
    28     <script src="jquery.js"></script>
    29 </head>
    30 <body>
    31     <ul>
    32         <li><a href='http://www.yzmedu.com' target='_blank'>云知梦</a></li>
    33         <li>第一菜单</li>
    34         <li>第一菜单</li>
    35         <li>第一菜单</li>
    36         <li>第一菜单</li>
    37     </ul>
    38 </body>
    39 <script>
    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 });
    51 </script>
    52 </html>
     
  • 相关阅读:
    (转)当别人努力的时候,你在做什么?
    《IT项目管理》读书笔记(9) —— 项目风险管理
    线程通信机制之定时器队列
    处理控制台事件消息
    C++常见内存错误及解决方案
    WCF与现行分布式通讯技术性能对比
    (译)如何使用SocketAsyncEventArgs类(How to use the SocketAsyncEventArgs class)
    常用性能计数器说明
    有关WCF公布IDataRead的问题
    负载均衡
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/9242435.html
Copyright © 2020-2023  润新知