jQuery实现鼠标右键菜单
功能:新建、复制、剪切、粘贴、删除
css
.div1{background-color: skyblue;}.div2{border: 1px solid #000000;}
var arr=["新建","复制","剪切","粘贴","删除"];var prev, clones;var ul=$("<ul></ul>").appendTo("body").css({
listStyle:"none",
margin:0,
padding:0,
display:"none",
zIndex:1,
position:"absolute",
backgroundColor:"white"}).on("mouseleave",function(){$(this).css("display","none");});
$.each(arr,function(index,item){$("<li>"+item+"</li>").appendTo(ul).css({
border:"1px solid #000000",
padding:"10px 20px",
borderTop: index ===0?"1px solid #000000":"none",}).hover(function(){$(this).addClass("div1");},function(){$(this).removeClass("div1");}).on("click",function(e){
ul.css("display","none");switch(arr.indexOf($(this).text())){case0:createDiv(e);
ul.css("display","none");break;case1:if(prev){
clones=prev.clone(true);}break;case2:if(prev){
clones = prev.clone(true);
prev.remove();
prev.removeClass("div2");
prev =null;}break;case3:if(!clones)return;
clones.prependTo("body").css({
left: e.clientX -25,
top: e.clientY -25,})if(prev){
prev.removeClass("div2");
prev.off("mousedown");
prev=null;}
prev=clones;
prev.addClass("div2");
clones=null;break;case4:if(prev){
prev.remove();
prev.removeClass("div2");
prev =null;
ul.css("display","none");}break;}})})$(document).on("contextmenu",function(e){
e.preventDefault();
ul.css({
left:e.clientX-10,
top:e.clientY-10,
display:"block",});});functioncreateDiv(e){$("<div></div>").css({
width:50,
height:50,
backgroundColor:function(){return("#"+Math.floor(Math.random()*0x1000000).toString(16).padStart(6,"0"));},
position:"absolute",
left: e.clientX-25,
top: e.clientY-25,}).prependTo("body").on("click",function(){if(prev){
prev.removeClass("div2");
prev.off("mousedown");
prev=null;}
prev=$(this);
prev.addClass("div2");
prev.on("mousedown",function(e){
e.preventDefault();$(document).on("mousemove",function(e1){
prev.css({
left:e1.clientX-e.offsetX,
top:e1.clientY-e.offsetY,});});$(document).on("mouseup",function(e2){$(document).off("mousemove mouseup");})})})}
发布评论