cari

Rumah  >  Soal Jawab  >  teks badan

javascript - Masalah dengan mendapatkan koordinat tetikus dalam kanvas

Saya ingin mencipta kesan lukisan garisan dengan tetikus, yang serupa dengan fungsi lukisan garisan papan lukisan yang disertakan dengan tingkap. Ini memerlukan mendapatkan koordinat tetikus, tetapi saya sentiasa merasakan bahawa koordinat tidak diperoleh dengan tepat Setiap kali saya melukis garisan pada kanvas, garisan itu sentiasa dilukis dengan jelas di bawah kursor, bukan dari kedudukan kursor melukis garisan. Jika anda melukis garisan di bahagian bawah kanvas dan ia tidak boleh keluar sama sekali, nilai koordinat sebenar yang diperoleh mungkin melebihi saiz kanvas. Mungkinkah kaedah saya untuk mendapatkan nilai koordinat adalah salah? Saya ingin bertanya kepada semua orang!

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>test</title>
    <style> body {
        background: #000;
    } </style>
    <script> window.onload = function () {
        var oC = document.getElementById('cav');
        var ctx = oC.getContext('2d');
        oC.onmousedown = function (evt) {
            var x = evt.pageX - oC.offsetLeft;
            var y = evt.pageY - oC.offsetTop;
            ctx.moveTo(x, y);
            oC.onmousemove = function (evt) {
                var x = evt.pageX - oC.offsetLeft;
                var y = evt.pageY - oC.offsetTop;
                ctx.lineTo(x, y);
                ctx.stroke();
            }
            oC.onmouseup = function () {
                oC.onmousemove = null
            }
        }
    } </script>
</head>
<body>
<canvas id="cav" style="width: 400px;height: 400px;background: white"></canvas>
</body>
</html>
过去多啦不再A梦过去多啦不再A梦2750 hari yang lalu582

membalas semua(1)saya akan balas

  • 我想大声告诉你

    我想大声告诉你2017-05-19 10:31:32

    <canvas id="cav" style="width: 400px;height: 400px;background: white"></canvas>

    digantikan dengan

    <canvas id="cav" width="400" height="400" style="background: white"></canvas>

    Perbezaan antara lebar dan tinggi tag kanvas dan gaya.lebar dan gaya.tinggi

    balas
    0
  • Batalbalas