0
我的代碼包含一個85%視角的div,它包含一個畫布。我目前只能通過點擊畫布進行滾動,但由於某種原因,我隨時可以調用canvas.style.transform =「scale(2,2)」;畫布保持相同的大小。任何幫助?css3的帆布比例尺故障
編輯 - 我正在通話規模的比例放大()函數
<!--Div to view, div to zoom, div to translate -->
<div id="view-translate" style="height:85vh; background-color:#f2f2f2; overflow:hidden; ">
\t <canvas id="ctx" height="4000" width="4000" oncontextmenu="return false;" style="background-color:#ffffff;"></canvas>
</div>
<p id="text"></p>
<button onclick="scaleUp()">yes</button>
<script src="https://cdn.socket.io/socket.io-1.4.5.js"></script>
<script>
\t //NETWORK VARIABLES
\t var socket = io();
\t //GETTING HTML ITEMS BY ID
\t var tran = document.getElementById("view-translate");
\t
\t var canvas = document.getElementById("ctx");
\t ctx = canvas.getContext("2d");
\t
\t //canvas.style.transform = "scale(2,2)";
\t //canvas.style.transform = "translate(0px,0px)"; \t
\t
\t
\t var tx = 0,//release x and y
\t ty = 0,
\t cx = 0,//click x and y
\t cy = 0,
\t mx= 0,//move x and y
\t my = 0,
\t scale = 1,
\t draggable = false;
\t
\t ctx.fillStyle="red";
\t ctx.fillRect(0,0,4,4);
\t
\t function scaleUp(){
\t \t
\t }
\t
\t //GETTING THE MOUSE X AND Y
\t function getMousePos(canvas, event){
\t \t var rect = canvas.getBoundingClientRect();
\t \t return {
\t \t \t x:event.clientX - rect.left,
\t \t \t y:event.clientY - rect.top
\t \t };
\t }
\t
\t canvas.addEventListener('mousedown', function(event){
\t \t
\t \t var pos = getMousePos(canvas, event);
\t \t
\t \t cx = pos.x;
\t \t cy = pos.y;
\t \t
\t \t if(event.which === 3){
\t \t \t draggable = true;
\t \t \t
\t \t }
\t \t
\t \t if(event.which === 1){
\t \t \t alert(cx + " " + cy);
\t \t }
\t \t
\t \t if(event.which === 2){
\t \t }
\t }, false);
\t
\t tran.addEventListener('mousedown', function(event){
\t \t
\t \t var pos = getMousePos(tran, event);
\t \t
\t \t
\t \t if(event.which === 3){
\t \t }
\t \t
\t \t if(event.which === 1){
\t \t
\t \t }
\t \t
\t \t if(event.which === 2){
\t \t }
\t }, false);
\t
\t tran.addEventListener('mouseup', function(event){
\t \t
\t \t if(event.which === 3){
\t \t \t draggable = false;
\t \t }
\t \t
\t \t if(event.which === 1){
\t \t }
\t \t
\t \t if(event.which === 2){
\t \t }
\t }, false);
\t
\t tran.addEventListener('mousemove', function(event){
\t \t
\t \t var pos = getMousePos(tran, event);
\t \t mx = pos.x;
\t \t my = pos.y;
\t \t
\t \t document.getElementById("text").innerHTML = mx + ", " + my + " size:" + canvas.height + " " + canvas.width;
\t \t
\t \t if(draggable){
\t \t \t tx = mx - cx;
\t \t \t ty = my - cy;
\t \t \t
\t \t \t document.getElementById("text").innerHTML = "CLICK!" + tx + ", " + ty;
\t \t \t
\t \t \t canvas.style.transform = "translate(" + tx + "px, " + ty + "px)";
\t \t }
\t
\t }, false);
\t
\t
\t
</script>
</html>
因此,我使用4000,4000畫布繪製4x4像素,因此它可以適應1000像素,我更改按鈕以增加高度和寬度以及高度和矩形的寬度爲35000x35000,矩形爲35x35,但是當我走到那麼高時,它不繪製矩形,它會停止繪製矩形超過11000像素 – Jaekx
11,000或1,100? 你可以包含一個片段或一些東西,我可以看到嗎?不明白你的意思。 – borbesaur