事件练习课

演讲者:交互开发课题组

内容提纲

  1. 案例赏析
  2. 案例解析
  3. 知识链接
  4. 案例实现

案例解析

  • 鼠标跟随效果
  • 图片放大的实现

知识链接

  • offsetX、clientX、pageX、screenX等
  • 获取鼠标位置
  • 获取元素位置

offsetX、clientX、pageX、screenX等

  • screenX 鼠标相对于用户显示器屏幕左上角的X,Y坐标,标准事件和IE事件都定义了这2个属性
  • pageX 鼠标相对于文档坐标可视区域的X,Y坐标(窗口坐标),这2个属性不是标准属性,但得到了广泛支持。IE事件中没有这2个属性。
  • clientX 鼠标相对于浏览器窗口可视区域的X,Y坐标(窗口坐标),可视区域不包括工具栏和滚动条。IE事件和标准事件都定义了这2个属性
  • offsetX 鼠标相对于事件源元素(srcElement)的X,Y坐标,只有IE事件有这2个属性,标准事件没有对应的属性。

获取鼠标位置

//获取鼠标位置
function getMousePos() {
    var scrollX = document.documentElement.scrollLeft || document.body.scrollLeft;
    var scrollY = document.documentElement.scrollTop || document.body.scrollTop;
    var x = event.pageX || event.clientX + scrollX;
    var y = event.pageY || event.clientY + scrollY;
    return {
        'x': x,
        'y': y
    };
}

获取对象位置

//获取对象位置
function getElementPos(obj) {
    //getBoundingClientRect方法
    var rectObject = obj.getBoundingClientRect();
    var x = y = 0;
    return {
        x: rectObject.left,
        y: rectObject.top
    }
}

放大镜案例

放大镜案例简化版

交互开发

旨为前端开发工程师的前端开发课程