前端之家收集整理的这篇文章主要介绍了
基于JavaScript实现右键菜单和拖拽功能,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
下面先给大家介绍下js实现的右键菜单功能,具体详情如下所示:
这一章解决的问题
2、阻止默认事件的实际应用。
<
Meta charset="UTF-8">
右键菜单
@H_
404_55@mousemove->mouseup
pop
Box.onmousedown = function(e) {
var e = e || window.event;
var pos = pop
Box.getBoundingClientRect();//getBoundingClientRect()用于
获取元素的left、top、right、bottom。offset
获取相对于父级的left和top。getBoundingClientRect()
获取相对于窗口的left、top、right、bottom。
var oX = e.clientX - pos.left;//clientX指相对于窗口的坐标。
var oY = e.clientY - pos.top;
document.onmousemove = function(e) {
var e = e || window.event;
var oLeft = e.clientX - oX;
var oTop = e.clientY - oY;
pop
Box.style.left = oLeft + "px";
pop
Box.style.top = oTop + "px";
if (oLeft<0) {
popBox.style.left = 0 + "px";
};
if (oLeft>document.documentElement.clientWidth - pop
Box.offsetWidth) {
pop
Box.style.left = document.documentElement.clientWidth - pop
Box.offsetWidth + "px";//document.documentElement.clientWidth指整个html文档的宽度,document.body.clientWidth的宽度。这两者是不一样的。可以在console控制台通过console.log(document.documentElement)和console.log(document.body)进行测试。
}
if (oTop<0) {
popBox.style.top = 0 + "px";
};
if (oTop > document.documentElement.clientHeight - pop
Box.offsetHeight) {
pop
Box.style.top = document.documentElement.clientHeight - pop
Box.offsetHeight + "px";
}
}
pop
Box.onmouseup = function() {
document.onmousemove = null;
}
}