博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JS监测鼠标指针位置
阅读量:4985 次
发布时间:2019-06-12

本文共 3071 字,大约阅读时间需要 10 分钟。

需求1:鼠标移入正方形的时候,蓝色小圆点跟随鼠标滚动(不许蓝色小圆点超出正方形区域),

正方形里实时显示当前鼠标相对于body的坐标

    
Title
(0, 0)

 

// 当需求为获得的坐标值相对于body时function positionBody(event) {    var x, y;    var e = event || window.event;    x = e.clientX;    y = e.clientY;    return {        x: x,        y: y    }}function executeMove(event, box, point, dot) {    var x = positionBody(event).x;    var y = positionBody(event).y;    // 获取盒子不计算边框的宽高    var boxWidth = box.clientWidth;    var boxHeight = box.clientHeight;    var dotWidth = dot.offsetWidth;    var dotHeight = dot.offsetHeight;    // 边界距离    var borderLeft = boxWidth - dotWidth;    var borderTop = boxHeight - dotHeight;    if(x >= borderLeft) {        dot.style.left = borderLeft + 'px';    } else if (y >= borderTop) {        dot.style.top = borderTop + 'px';    } else {        dot.style.left = x + 'px';        dot.style.top = y + 'px';    }    point.innerHTML = '(' + x + ', ' + y + ')';}window.onload = function () {    var box = document.getElementById('box');    var point = document.getElementById('point');    var dot = document.getElementById('dot');    if(box.attachEvent) {        box.attachEvent('mousemove', function (event) {            executeMove(event, box, point, dot);        });    } else {        box.addEventListener('mousemove', function (event) {            executeMove(event, box, point, dot);        }, false);    }};

 

js bin 地址:

 

 

需求2:鼠标移入正方形的时候,蓝色小圆点跟随鼠标滚动(不许蓝色小圆点超出正方形区域),

正方形里实时显示当前鼠标相对于正方形的坐标(要求正方形在页面里垂直居中)。

元素垂直居中的三种实现方式:

 

    
Title
(0, 0)
// 当需求为获得的坐标值相对于box时function positionBox(event, box) {    var x, y;    var e = event || window.event;    var boxWidth = box.clientWidth;    var boxHeight = box.clientHeight;    x = e.clientX - box.offsetLeft;    y = e.clientY - (box.offsetTop - box.offsetHeight/2);    return {        x: x,        y: y    }}function executeMove(event, box, point, dot) {    var x = positionBox(event, box).x;    var y = positionBox(event, box).y;    // 获取盒子不计算边框的宽高    var boxWidth = box.clientWidth;    var boxHeight = box.clientHeight;    var dotWidth = dot.offsetWidth;    var dotHeight = dot.offsetHeight;    // 边界距离    var borderLeft = boxWidth - dotWidth;    var borderTop = boxHeight - dotHeight;    if(x >= borderLeft) {        dot.style.left = borderLeft + 'px';    } else if (y >= borderTop) {        dot.style.top = borderTop + 'px';    } else {        dot.style.left = x + 'px';        dot.style.top = y + 'px';    }    point.innerHTML = '(' + x + ', ' + y + ')';}window.onload = function () {    var box = document.getElementById('box');    var point = document.getElementById('point');    var dot = document.getElementById('dot');    if(box.attachEvent) {        box.attachEvent('mousemove', function (event) {            executeMove(event, box, point, dot);        });    } else {        box.addEventListener('mousemove', function (event) {            executeMove(event, box, point, dot);        }, false);    }};

 js bin: 

 

转载于:https://www.cnblogs.com/lqcdsns/p/6377987.html

你可能感兴趣的文章
Ubuntu 下常用快捷键
查看>>
Node.js安装及环境配置之Windows篇
查看>>
Git分支管理
查看>>
位运算
查看>>
SQL Server-删除表中重复的记录!
查看>>
Ubuntu Code::Blocks IDE 13.12 汉化
查看>>
Linux vim 常用命令
查看>>
document.write与document.getelementById(),output的作用对象区别
查看>>
大学生程序设计邀请赛(华东师范大学)B. 分词 DP
查看>>
IBM MQ常用命令
查看>>
RedHat 无法使用YUM源问题
查看>>
实战重构工厂模式
查看>>
Flask的上下文管理:Werkzeug库的local模块
查看>>
Python学习之路-5 (元祖数据类型)
查看>>
转:ASP.NET MVC HtmlHelper用法大全
查看>>
课后作业-阅读任务-阅读提问-4
查看>>
基于meanshift的手势跟踪与电脑鼠标控制(手势交互系统)
查看>>
手动博客重定向 https://www.cnblogs.com/kelthuzadx/
查看>>
测试一下哈哈哈哈
查看>>
Scrum如何拥抱变化
查看>>