【问题标题】:How to make this draw zoomable如何使此绘图可缩放
【发布时间】:2019-09-14 21:14:38
【问题描述】:

到目前为止,这是我的 javascript 和 html。请有人能帮我找到一种方法让这个矩形在鼠标滚轮上可缩放

var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var width = 50;
var height = 35;
var $width = document.getElementById('width');
var $height = document.getElementById('height')

$width.value = width;
$height.value = height;

$width.addEventListener("keyup", function () {
    width = this.value;
    draw();
}, false);

$height.addEventListener("keyup", function () {
    height = this.value;
    draw();
}, false);

function draw() {
    ctx.clearRect(0, 0, canvas.width, canvas.height);
    ctx.fillRect(40, 40, width, height);
}

【问题讨论】:

    标签: javascript html canvas


    【解决方案1】:

    您可以像这样使用CSS Transform Property,称为scale

    var canvas = document.getElementById("canvas");
         canvas.addEventListener("dblclick", function(){
          this.style.transform="scale(1.5)";
         });
    var ctx = canvas.getContext("2d");
    var width = 50;
    var height = 35;
    var $width = document.getElementById('width');
    var $height = document.getElementById('height');
    
    function draw() {
        ctx.clearRect(0, 0, canvas.width, canvas.height);
        ctx.fillRect(40, 40, width, height);
    }
    draw();
    <canvas id="canvas"></canvas>

    【讨论】:

    • 酷!如果你不介意,我还有几个问题。第一:我如何使用它来放大和缩小,就像在鼠标滚轮上一样,正方形越来越近,如果用户想要的话,它会越来越远。第二:如何只绘制“边界”而不填充正方形。谢谢!!!
    • 这里是一个在不填充正方形Draw Border的情况下绘制边框的示例。同样在此链接MouseWheel Event 您可以了解 MouseWheel 事件的工作原理!享受!如果您需要帮助来理解代码,请告诉我!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-10-13
    • 2015-11-22
    • 1970-01-01
    • 2016-09-23
    • 1970-01-01
    • 2021-04-26
    相关资源
    最近更新 更多