1、自定义右键菜单
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style type="text/css" media="screen">
#div1 {width: 100px;height: 100px;border: 1px solid #000;position: absolute;background: #CCC;display: none;}
</style>
<script>
//阻止默认事件:右键菜单
// document.οncοntextmenu=function () {
// return false
// }
function getPos(ev) {
var scrollTop=document.documentElement.scrollTop||document.body.scrollTop
var scrollLeft=document.documentElement.scrollLeft||document.body.scrollLeft
return {x:ev.clientX+scrollLeft,y:ev.clientY+scrollTop}
}
document.οncοntextmenu=function (ev) {
var oe=ev||event
var od=document.getElementById('div1')
od.style.display='block'
var odpos=getPos(ev)
od.style.left=odpos.x+'px'
od.style.top=odpos.y+'px'
return false
}
document.οnclick=function () {
var od=document.getElementById('div1')
od.style.display='none'
}
</script>
</head>
<body>
<div id="div1">
<ul>
<li>新建</li>
<li>刷新</li>
<li>关闭</li>
<li>查看</li>
</ul>
</div>
</body>
</html>
2、拖拽
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
#div1 {width: 200px;height: 200px;border: 1px solid #000;background: #CCC;position: absolute;}
</style>
<script type="text/javascript">
window.οnlοad=function () {
var od=document.getElementById('div1')
var x=0
var y=0
document.οnmοusedοwn=function (ev) {
x=getPos(ev).x-od.offsetLeft
y=getPos(ev).y-od.offsetTop
document.οnmοusemοve=function (ev) {
var w=getPos(ev).x-x
var h=getPos(ev).y-y
if(w<0){
w=0
}else if (w>document.documentElement.clientWidth-od.offsetWidth) {
w=document.documentElement.clientWidth-od.offsetWidth
}
if(h<0){
h=0
}else if (h>document.documentElement.clientHeight-od.offsetHeight) {
h=document.documentElement.clientHeight-od.offsetHeight
}
od.style.left=w+'px'
od.style.top=h+'px'
}
document.οnmοuseup=function () {
document.οnmοusemοve=null
document.οnmοuseup=null
}
//阻止FF bug
return false
}
}
function getPos(ev) {
var scrollTop=document.documentElement.scrollTop||document.body.scrollTop
var scrollLeft=document.documentElement.scrollLeft||document.body.scrollLeft
return {x:ev.clientX+scrollLeft,y:ev.clientY+scrollTop}
}
</script>
</head>
<body>
<div id="div1"></div>
</body>
</html>
3、不能拖出指定对象
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
#div1 {width: 100px;height: 100px;border: 1px solid #000;background: #CCC;position: absolute;}
#div2 {width: 200px;height: 200px;border: 1px solid #000;background: red;position: relative;}
</style>
<script type="text/javascript">
window.οnlοad=function () {
var od=document.getElementById('div1')
var od2=document.getElementById('div2')
var x=0
var y=0
document.οnmοusedοwn=function (ev) {
x=getPos(ev).x-od.offsetLeft
y=getPos(ev).y-od.offsetTop
document.οnmοusemοve=function (ev) {
var w=getPos(ev).x-x
var h=getPos(ev).y-y
if(w<0){
w=0
}else if (w>od2.offsetWidth-od.offsetWidth) {
w=od2.offsetWidth-od.offsetWidth
}
if(h<0){
h=0
}else if (h>od2.offsetHeight-od.offsetHeight) {
h=od2.offsetHeight-od.offsetHeight
}
od.style.left=w+'px'
od.style.top=h+'px'
}
document.οnmοuseup=function () {
document.οnmοusemοve=null
document.οnmοuseup=null
}
//阻止FF bug
return false
}
}
function getPos(ev) {
var scrollTop=document.documentElement.scrollTop||document.body.scrollTop
var scrollLeft=document.documentElement.scrollLeft||document.body.scrollLeft
return {x:ev.clientX+scrollLeft,y:ev.clientY+scrollTop}
}
</script>
</head>
<body>
<div id="div2">
<div id="div1"></div>
</div>
</body>
</html>
转载于:https://blog.51cto.com/f1yinsky/1940052