更多事件类型请查看:事件类型
鼠标事件
鼠标事件有三个: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);}}
