更多事件类型请查看:事件类型
鼠标事件
鼠标事件有三个:mousedown
、mouseup
、click
它们三个的执行顺序是:mousedown
=》mouseup
=>click
对mousedown
和mouseup
事件来说,event
对象上会有一个button
属性,表示按下或释放的是哪个按键。**DOM**
为这个**button**
属性定义了 3 个值:0 表示鼠标主键、1 表示鼠标中键(通常也是滚轮键)、2 表示鼠标副键。
document.onmousedown = function (event) {
console.log(event.button);
};
拖拽处理边界
elDrag(document.getElementsByClassName("box")[0]);
function elDrag(el) {
var offsetPos = null;
var wWidth = document.documentElement.clientWidth,
wHeight = document.documentElement.clientHeight,
elWidth = parseInt(window.getComputedStyle(el, null).width),
elHeight = parseInt(window.getComputedStyle(el, null).height);
el.addEventListener(
"mousedown",
function (event) {
offsetPos = {
X: event.offsetX,
Y: event.offsetY,
};
document.addEventListener("mousemove", mousemove, false);
document.addEventListener("mouseup", mouseup, false);
},
false
);
function mousemove(event) {
var elLeft = event.pageX - offsetPos.X,
elTop = event.pageY - offsetPos.Y;
// 判断元素是不是在文档的左面
if (elLeft <= 0) {
elLeft = 0;
} else if (elLeft >= wWidth - elWidth) {
// 判断元素是不是在文档的右面
elLeft = wWidth - elWidth;
}
// 判断元素是不是在文档的上面
if (elTop <= 0) {
elTop = 0;
} else if (elTop >= wHeight - elHeight) {
// 判断元素是不是在文档的下面
elTop = wHeight - elHeight;
}
el.style.left = elLeft + "px";
el.style.top = elTop + "px";
}
function mouseup() {
document.removeEventListener("mousemove", mousemove, false);
}
}