When I use the following Javascript code
function init() { var gameCanvas = document.getElementById("gameCanvas"); document.getElementById("canvasWidth").innerHTML = gameCanvas.width; gameCanvas.addEventListener("mousemove", handleMouseEvent); } function handleMouseEvent(mouseEvent) { document.getElementById("mouseX").innerHTML = mouseEvent.offsetX;; }
with this html
<body> <div id="mainScreen"> <div id="topScreen"> <h1 id="canvasWidth">Score:</h1> <h1 id="mouseX">0</h1> </div> <div id="gameScreen"> <canvas id="gameCanvas" onclick="init()"> </canvas> </div> </div> </body>
The width of the canvas is displayed up to 300, and the mouseX that remains on the canvas is much larger than 300. I linked a screenshot for it. It works fine in Chrome, but it doesnβt work in Internet Explorer and in the Windows Store apps.
Screenshot: http://dc365.4shared.com/download/ajE0f2XQ?tsid=20130615-014658-676a63ae
The pointer was somewhere near the right edge, but it did not appear in the screenshot, so I marked it. The first number above is the width of the canvas, and the second is the offsetX pointer.
Why is this happening, how to fix it?
Refresh (CSS code added)
Css code
#mainScreen { display: -ms-grid; -ms-grid-columns: 30px 1fr 30px; -ms-grid-rows: 30px 100px 20px 1fr 30px; height:inherit; } #topScreen { display: -ms-grid; -ms-grid-column: 2; -ms-grid-row: 2; -ms-grid-columns: 30px 150px 30px 60px 100px 1fr 30px; -ms-grid-rows: 20px 1fr 20px; } #canvasWidth { display: -ms-grid; -ms-grid-row: 2; -ms-grid-column: 2; } #mouseX { display: -ms-grid; -ms-grid-column: 4; -ms-grid-row: 2; } #gameScreen { display: -ms-grid; -ms-grid-column: 2; -ms-grid-row: 4; -ms-grid-rows:1fr; -ms-grid-columns: 1fr; height:inherit; width:inherit; } #gameCanvas { height:inherit; width:inherit; background-color:white; -ms-grid-column: 1; -ms-grid-row: 1; }
javascript canvas
Abhishek Verma Jun 14 '13 at 10:44 2013-06-14 10:44
source share