首页 > 其他分享 >js右键生成菜单

js右键生成菜单

时间:2022-10-10 16:12:34浏览次数:44  
标签:style 菜单 documentElement list none js 右键 document evt

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>右键菜单</title>
</head>
<style>
    *{
        margin: 0;
        padding: 0;
    }
    ul{
    list-style: none;
    width: 200px;
    padding: 10px;
    border: 1px solid black;
    display: none;
    position: absolute;
  }
ul li:hover{
 background: skyblue;

}

</style>
<body>
    <ul id="list">
        <li class="aaa">1111</li>
        <li class="bbb">2222</li>
        <li class="ccc">3333</li>
        <li class="ddd">4444</li>

    </ul>
    <script>
       document.addEventListener("contextmenu",function(evt){
       evt.preventDefault()
       list.style.display="block"
     if(x >= document.documentElement.clientWidth-list.offsetWidth){
     x=document.documentElement.clientWidth-list.offsetWidth

     }
     if(y >= document.documentElement.clientHeight-list.offsetHeight){
     y=document.documentElement.clientHeight-list.offsetHeight

     }

       var x=evt.clientX
       var y=evt.clientY
       list.style.left=x + "px"
       list.style.top=y + "px"
       })
    document.addEventListener("click",()=>{
    list.style.display="none"

     })
    list.onclick=function(evt){
        console.log("list",evt.target)
        if(evt.target.className==="aaa"){
           console.log(111111)
        }
    }
    </script>
</body>
</html>

 

<!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8">     <meta http-equiv="X-UA-Compatible" content="IE=edge">     <meta name="viewport" content="width=device-width, initial-scale=1.0">     <title>右键菜单</title> </head> <style>     *{         margin: 0;         padding: 0;     }     ul{     list-style: none;     width: 200px;     padding: 10px;     border: 1px solid black;     display: none;     position: absolute;   } ul li:hover{  background: skyblue;
}
</style> <body>     <ul id="list">         <li class="aaa">1111</li>         <li class="bbb">2222</li>         <li class="ccc">3333</li>         <li class="ddd">4444</li>
    </ul>     <script>        document.addEventListener("contextmenu",function(evt){        evt.preventDefault()        list.style.display="block"      if(x >= document.documentElement.clientWidth-list.offsetWidth){      x=document.documentElement.clientWidth-list.offsetWidth
     }      if(y >= document.documentElement.clientHeight-list.offsetHeight){      y=document.documentElement.clientHeight-list.offsetHeight
     }
       var x=evt.clientX        var y=evt.clientY        list.style.left=x + "px"        list.style.top=y + "px"        })     document.addEventListener("click",()=>{     list.style.display="none"
     })     list.onclick=function(evt){         console.log("list",evt.target)         if(evt.target.className==="aaa"){            console.log(111111)         }     }     </script> </body> </html>

标签:style,菜单,documentElement,list,none,js,右键,document,evt
From: https://www.cnblogs.com/1014040868lyn/p/16776060.html

相关文章

  • 22. JS Number(数字)对象
    1.前言在JavaScript中您可以使用十进制、十六进制或八进制表示法来表示整数或浮点数。与其它编程语言不同,JavaScript中的数字并不区分整数和浮点数,统一使用IEEE754......
  • 21. JS对象的创建和使用
    1.前言JavaScript是一种面向对象的编程语言,在JavaScript中几乎所有的东西都是对象。因此,要想有效的使用JavaScript,首先需要了解对象的工作原理以及如何创建并使用对......
  • 20. JS作用域(全局作用域+局部作用域)
    1.前言在JavaScript中,您可以在任意位置声明变量,但不同的位置会影响变量的可用范围,这个范围称为作用域。作用域可以大致分为两种类型,分别是全局作用域和局部作用域。下......
  • TZOJ 7685: 最短路径 (dijstra/输出路径pre)
    描述  给定n个顶点的带权有向图,若从顶点x到顶点y之间存在一条路径,那么这条路径的长度定义为路径上各条边的权值之和。现在请你找出从顶点1到顶点n的一条最短路径。......
  • MATLAB GUI设计——菜单选项中加入图标
    GUI中添加图标,能很大程度上提高用户的友好度,显得格外舒适。MATLAB官方并没有提供向菜单栏中添加图标的直接方法,基于figure设计的GUI中,可以通过JaveFrame属性间接设置图标......
  • 16. JS for of循环语句的用法
    1.前言JSforof循环是ECMAScript6中新添加的一个循环方式,与 forin 循环类似,也是普通 for 循环的一种变体。使用forof循环可以轻松的遍历数组或者其它可遍历......
  • 14. JS for循环语句的用法
    1.前言前面我们简单介绍了 while 循环和 dowhile 循环,本节再来介绍另外一种循环——for循环。1.1 JSfor循环语法JSfor循环适合在已知循环次数时使用,语法格......
  • js 字符串 截取字串 slice,substring,substr方法对比
    js字符串截取字串slice,substring,substr方法对比1.slice()方法slice()提取字符串的某个部分并在新字符串中返回被提取的部分。该方法设置两个参数:起始索引(开始位......
  • js、jquery 实时监听input中的值,并赋值到另一个input
    <inputtype="text"name="name"id="searchName"><inputtype="text"name="name_two"id="daochuName"><inputtype="text"name="txt_JEDX"id="txt_JEDX"......
  • js Base64 文件上传
     //base64转二进制流(blob)dataURLtoBlob(dataurl){vararr=dataurl.split(","),mime=arr[0].match(/:(.*?);/)[1],bstr=atob......