相关疑难解决方法(0)

screenX/Y,clientX/Y和pageX/Y有什么区别?

screenX/ Y,clientX/ YpageX/有Y什么区别?

同样对于iPad Safari,计算与桌面上的计算类似 - 或者由于视口有一些差异?

如果你能指出我的例子,那就太棒了.

javascript safari ipad mouse-position

547
推荐指数
7
解决办法
19万
查看次数

Firefox中的event.offsetX

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
<script language="javascript">
function main(){
    var canvas = document.getElementById("canvas");
    canvas.addEventListener("mousemove", function(e){
        if (!e) e = window.event;
        var ctx = canvas.getContext("2d");

        var x = e.offsetX;
        var y = e.offsetY;

        ctx.fillRect(x, y, 1, 1);
    });
}
</script>
</head>
<body onload="main();">
<div style="width: 800px; height: 600px; -webkit-transform: scale(0.75,0.75); -moz-transform: scale(0.75,0.75)">
    <canvas id="canvas" width="400px" height="400px" style="background-color: #cccccc;"></canvas>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

请考虑以上快速而肮脏的例子.请注意我的画布包含一个应用了比例变换的div.以上代码适用于任何基于webkit的浏览器.移动鼠标时,它会在画布上绘制点.不幸的是,它不在Firefox中,因为它的事件模型不支持offsetX/Y属性.如何将(也许)event.clientX(在firefox中也支持)中的鼠标坐标转换为画布相对坐标,同时考虑画布位置,变换等?谢谢,卢卡.

javascript firefox events html5 html5-canvas

47
推荐指数
5
解决办法
4万
查看次数

React的mouseEvent没有offsetX/offsetY

我尝试获取click相对于element的位置,但event没有offsetX.

onClick(e) {
  console.log(e.offsetX) // returns undefined
  console.log(e.target.offsetX) // returns undefined
}

render() {
  return <img src='http://placehold.it/1000x500' onClick={this.onClick} />
}
Run Code Online (Sandbox Code Playgroud)

我如何获得点击元素的位置?

reactjs

36
推荐指数
2
解决办法
2万
查看次数