在热图上映射鼠标点击坐标以获得不同的分辨率&JS/Jquery中的屏幕大小
Mapping mouse click coordinates on heatmap for different resolution & screen sizes in JS/Jquery
我想从以不同分辨率访问的网页中收集鼠标点击数据;屏幕大小的设备,并将这些点击坐标准确地映射在用于显示热图的覆盖上。我如何在JavaScript/jQuery中做到这一点?此外,考虑到用户可以随时向上/向下滚动正在显示的页面并调整浏览器窗口的大小从而改变DOM元素在屏幕上的相对位置的情况。例如,我有一个主div包装器作为文档的容器,里面有两个div作为列。通常,这些列将在包装器div中并排显示。但当用户将页面大小调整为较小时,右侧的列将移动并位于第一列之下。因此,它的X和Y偏移量根据页面而变化。现在,如果用户点击第二栏,当我在设备上以整版视图看到热图时,点击量将无法准确映射到屏幕上。我是初学者,所以我需要了解详细信息。
我正在做同样的事情来收集要绘制在热图上的点击坐标。我使用的方法是获得点击坐标,并将其转换为相对于文档的像素平均值,然后在再次打印时将其转换成坐标。
window.addEventListener("click",function(){
var posx = 0;
var posy = 0;
TotalX = document.body.scrollWidth;
TotalY = document.body.scrollHeight;
if (!e) {
var e = window.event;
}
if (e.pageX || e.pageY) {
posx = e.pageX;
posy = e.pageY;
}
else if (e.clientX || e.clientY) {
posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
}
console.log("X" + ((posx * 100)/TotalX)); //Just For Debugging
console.log("Y" + ((posy * 100)/TotalY)); // For Debugging
return {
x : ((posx * 100)/TotalX),
y : ((posy * 100)/TotalY)
};
});
找不到相对于文档的坐标在桌面点击中效果很好,但在手机点击中效果不佳。你可以设置一个条件来避免手机点击,也可以用不同的方式记录。
相关文章:
- jquery点击函数select&取消选择
- 如何将屏幕分辨率乘以 80%,然后在代码中使用
- Windows8应用程序(html&Javascript):从图片库(除了文件选择器)显示图像的另一种方式
- Angular js-返回一个包含类似
- 一点javascript元编程&可链接的设置器
- 通过JSON&比较时间
- Jquery模板,如果xx&&如果yy
- jQuery工具验证器自定义效果-添加&消除影响
- 检测图像分辨率
- Twitter引导程序Typeahead-Id&标签
- AngularJS&JSON-从Previous&下一个对象
- 什么是&&在没有if的行中的变量之间
- 关于引入外部javascript文件的问题&css通过https
- 指令的模板必须只有一个根元素:With restrict E&替换true
- 使用ajax的服务器端分页&jQuery
- Javascript,如果条件在没有&&逻辑运算符当&&它不起作用
- 如何使用dropzone&vueJs
- 如何准确执行加载脚本&退出弹出窗口
- 检测移动变焦&默认移动分辨率
- 在热图上映射鼠标点击坐标以获得不同的分辨率&JS/Jquery中的屏幕大小