JavaScript - Coordenadas de Mouse.

 
Vista:
sin imagen de perfil
Val: 8
Ha aumentado su posición en 24 puestos en JavaScript (en relación al último mes)
Gráfica de JavaScript

Coordenadas de Mouse.

Publicado por Dante Miguel (7 intervenciones) el 02/05/2020 21:37:14
Gente, buenas tardes.

Tengo el siguiente código, que es para dibujar "rectángulos"...

El tema es que ese código, toma las coordenadas de la pantalla(o sea de lo que muestra el navegador)... lo que yo necesito es que tome las coordenadas del CANVAS(que es un div)...

Se puede hacer eso?


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
function initDraw(canvas) {
    var mouse = {
        x: 0,
        y: 0,
        startX: 0,
        startY: 0
    };
 
    function setMousePosition(e) {
        var ev = e || window.event; //Moz || IE
        if (ev.pageX) { //Moz
            mouse.x = ev.pageX + window.pageXOffset;
            mouse.y = ev.pageY + window.pageYOffset;
        } else if (ev.clientX) { //IE
            mouse.x = ev.clientX + document.body.scrollLeft;
            mouse.y = ev.clientY + document.body.scrollTop;
        }
    };
 
    var element = null;
    canvas.onmousemove = function(e) {
        setMousePosition(e);
        if (element !== null) {
            element.style.width = Math.abs(mouse.x - mouse.startX) + 'px';
            element.style.height = Math.abs(mouse.y - mouse.startY) + 'px';
            element.style.left = (mouse.x - mouse.startX < 0) ? mouse.x + 'px' : mouse.startX + 'px';
            element.style.top = (mouse.y - mouse.startY < 0) ? mouse.y + 'px' : mouse.startY + 'px';
        }
    }
 
    canvas.onclick = function(e) {
        if (element !== null) {
            element = null;
            canvas.style.cursor = "default";
            console.log("finsihed.");
        } else {
            console.log("begun.");
            mouse.startX = mouse.x;
            mouse.startY = mouse.y;
            element = document.createElement('div');
            element.className = 'rectangulo'
            element.style.left = mouse.x + 'px';
            element.style.top = mouse.y + 'px';
            canvas.appendChild(element)
            canvas.style.cursor = "crosshair";
        }
    }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de ScriptShow
Val: 2.019
Plata
Ha mantenido su posición en JavaScript (en relación al último mes)
Gráfica de JavaScript

Coordenadas de Mouse.

Publicado por ScriptShow (692 intervenciones) el 03/05/2020 01:40:42
Saludos,

un ejemplo sencillo, compatible, adaptable...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<style>
div {height:400px;border:1px solid gray;}
</style>
 
<div onmousemove="test(event)"></div>
<h2 id="demo"></h2>
 
<script>
function test(event) {
var x=event.offsetX;
var y=event.offsetY;
document.getElementById("demo").innerHTML=y+" x "+x;
}
</script>

Espero sea útil.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar