Я пытаюсь получить координаты x, y из двух разных полотен на одной странице, которые могут изменить положение с помощью изменения размера экрана.
Тестовая страница выглядит как на картинке ниже
с моим текущим кодом, когда я нажимаю на любую из черных точек, я получаю правильные координаты x, y для холста, на котором я щелкнул.
однако, если размер страницы изменяется, а правый холст опускается ниже левого холста, когда я нажимаю на теперь более низкую черную точку холста, значение Y уменьшается, и я не могу обойти это.
Ниже показан код, который можно запустить в полноэкранном режиме с изменением размера ответа.
Моя цель - узнать, когда была нажата черная точка и на каком холсте произошло это событие. Это должно быть в состоянии сделать это при изменении размера страницы на разных экранах
Просто чтобы уточнить координаты Y верхней строки холста 2 - это 15. Если я изменяю резкость и холст 2 опускается ниже холста 1, y становится примерно 323 в верхней строке, но мне нужно, чтобы он оставался на том же значении, что и раньше изменение размера
Любая помощь будет отличной, спасибо
function circle (name, setTemp, temp){
c=document.getElementById(name);
var ctx=c.getContext("2d");
c.width = 200;
c.height = 300;
ctx.fillStyle = "gray";
ctx.fillRect(0, 0, c.width, c.height);
ctx.beginPath();
ctx.arc(100,170,5,0,2*Math.PI);
ctx.fillStyle = 'black';
ctx.fill();
}
circle ('den');
circle ('wc');
var den=document.getElementById('den');
den.addEventListener('mousedown',denClicked, false);
function denClicked(event){
c=document.getElementById('den');
var rect = c.getBoundingClientRect()
var x = event.pageX - rect.left;
var y = event.pageY;
console.log('x: ' + x + ' y: ' + y);
}
var wc=document.getElementById('wc');
wc.addEventListener('mousedown',wcClicked, false);
function wcClicked(event){
c=document.getElementById('wc');
var rect = c.getBoundingClientRect()
var x = event.pageX - rect.left;
var y = event.pageY;
console.log(rect);
console.log('x: ' + x + ' y: ' + y);
}
* {
box-sizing: border-box;
}
[class*="col-"] {
float: left;
padding: 5px;
}
/* For mobile phones: */
[class*="col-"] {
width: 100%;
}
@media only screen and (min-width: 768px){
/* For desktop: */
.col-1 {width: 8.33%;}
.col-2 {width: 16.66%;}
.col-3 {width: 25%;}
.col-4 {width: 33.33%;}
.col-5 {width: 41.66%;}
.col-6 {width: 50%;}
.col-7 {width: 58.33%;}
.col-8 {width: 66.66%;}
.col-9 {width: 75%;}
.col-10 {width: 83.33%;}
.col-11 {width: 91.66%;}
.col-12 {width: 100%;}
}
@media only screen and (min-width: 600px){
.col-m-1 {width: 8.33%;}
.col-m-2 {width: 16.66%;}
.col-m-3 {width: 25%;}
.col-m-4 {width: 33.33%;}
.col-m-5 {width: 41.66%;}
.col-m-6 {width: 50%;}
.col-m-7 {width: 58.33%;}
.col-m-8 {width: 66.66%;}
.col-m-9 {width: 75%;}
.col-m-10 {width: 83.33%;}
.col-m-11 {width: 91.66%;}
.col-m-12 {width: 100%;}
}
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="canvas.css">
</head>
<body>
<div class="row">
<div class="col-6">
<div><canvas id="den"></canvas> </div>
</div>
<div class="col-6">
<div><canvas id="wc"></canvas> </div>
</div>
</div>
<div><script src="canvas.js"></script> </div>
</body>
</html>