JS如何实现自定义鼠标右击菜单


当前第2页 返回上一页

  menu的位置需要根据页面布局的具体情况来判断是e.offsetX/Y、e.clientX/Y或是其它,此处加上document.documentElement.scrollTop是考虑加上滚动条的情况(实际上这个例子里面并没有滚动条)。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

window.onload = function() {

    //以下为自定义右击菜单

    document.oncontextmenu = function(e) {

        //阻止执行浏览器默认右击事件

        e.preventDefault();

        //聊天室好友列表

        if (document.getElementById("menu-friend")) {

            var menu1 = document.getElementById("menu-friend");

            menu1.style.display = "block";

            document.getElementById("contain-friend").onmousedown = function(e) {      //菜单定位

                menu1.style.left = e.offsetX + "px";

                menu1.style.top = document.documentElement.scrollTop + e.clientY + "px";

                //alert(menu1.style.top)

                if (document.getElementById("contain-friend")) {

                    if (e.button == 2) {

                        menu1.style.visibility = "visible";

                    } else {

                        menu1.style.visibility = "hidden";

                    }

                }

            }

        }

    }

    if (document.getElementById("btn1")) {

        document.getElementById("btn1").onmousedown = function(e) {

            document.getElementById("label1").innerHTML = "你点击了菜单一"

        }

    }

    if (document.getElementById("btn2")) {

        document.getElementById("btn2").onmousedown = function(e) {

            document.getElementById("label1").innerHTML = "你点击了菜单二"

        }

    }

    return false;

    //与e.preventDefault();功能相同,但是必须放在最后否则在return后面的内容均不执行

}


JavaScript文件

CSS样式表

1/*自定义右击菜单*/

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

.contain {

    background-color: #D1CEBC;

    height: 100px;

    width: 300px;

}

.menu {

    width: 150px;

    background-color: white;

    visibility: hidden;

    position: absolute;

    box-shadow: 0px 0px 10px #D1CEBC

}

.menu-item {

    background-color: #fff;

    margin: 0;

}

.menu-item-btn {

    width: 146px;

    margin: 2px;

    border: 0;

    text-align: left;

    padding-left: 60px;

    padding-top: 5px;

    padding-bottom: 5px;

    background-color: #fff;

    color: #000;

}

.menu-item-btn:hover {

    background-color: #D1CEBC;

}

相信看了这些案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

相关阅读:

HTML中关于盒模型的总结

html语义化有那些作用

HTML中移动端有哪些布局方案

input的文本框怎么做到和img验证码

以上就是JS如何实现自定义鼠标右击菜单的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

javascript中ie兼容出现的问题及解决方法

javascript如何将数组转换为字符串

javascript语言有什么特点

js中object.defineproperty的用法介绍(代码示例)

javascript find()方法有什么用

javascript中event loop的分析

javascript 中实现等分数组

javascript函数的写法有哪些

javascript怎么实现弹出窗口

了解javascript有必要使用服务端渲染吗

更多相关阅读请进入《javascript》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...