2017-12-30 46 views
1

이 div를 확장하는 버튼을 클릭 할 때 div가있는 div와 함께 크기를 조정하여 p5.js 크기로 캔버스를 만들려고합니다. 다시로드 할 캔버스가 필요하지 않으며 대신 추가 높이를 추가해야합니다. 그것을 할 수있는 방법이 있습니까? 나는 캔버스 너비를 100 % 및 높이 : auto로 만들려고했으나 작동하지 않습니다.p5.js : div가 높이를 변경할 때 캔버스 높이의 크기 조정

<div class="canvas-wrapper"> 
    <div id="canvas"></div> 
</div> 

<button type="button" class="button" id="extend-canvas">Extend</button> 

스크립트 :

function setup() { 
    var myCanvas = createCanvas(498, 598); 
    myCanvas.parent('canvas'); 
} 

$("#extend-canvas").click(function() { 
    var canvasHeight = $(".canvas-wrapper").height(); 
    $(".canvas-wrapper").height(canvasHeight + 300); 
}); 

CSS :

.canvas-wrapper { 
    margin: 0 auto; 
    background: #fff; 
    width: 500px; 
    height: 600px; 
    position: relative; 
} 

#canvas canvas { 
    width: 100% !important; 
    height: auto !important; 
} 
+0

https://github.com/processing/p5.js/issues/207 c.size (width-10, height-10)를 사용하여 크기 조정. (크기 메소드를 사용하려면 p5.dom.js 부가 기능을로드해야합니다.) – GhitaB

+0

이 방법은 효과가 있지만 캔버스가 다시로드되어 공백으로 표시되고 추가 한 모든 정보 (마우스로 일부 줄을 그렸음)가 사라집니다. . – Kaori

+0

https://p5js.org/reference/#/p5/resizeCanvas – GhitaB

답변

1

당신은이에 대한 resizeCanvas() 기능을 사용할 수 있습니다, 아래의 코드를 참조하십시오. 더 많은 정보는 the reference에서 찾을 수 있습니다.

다음은 화면의 폭과 높이에 맞게 캔버스 크기를 조절하는 예이다 :

function setup() { 
    createCanvas(windowWidth, windowHeight); 
} 

function draw() { 
    background(0, 100, 200); 
} 

function windowResized() { 
    resizeCanvas(windowWidth, windowHeight); 
} 

을하지만 당신은 쉽게 사업부의 폭과 높이를받을 수 있도록 캔버스 크기를 설정할 수 있습니다.

+1

@ 카오리 그 중 한 가지 방법은 먼저 버퍼에 모든 것을 그립니다 ('createGraphics()'함수는 친구입니다), 캔버스의 크기를 조절 한 다음 캔버스에 다시 버퍼. –

+0

이 방법은 효과가 있지만 캔버스가 새로 고침되고 빈 칸으로 바뀌며 모든 정보가 사라집니다. – Kaori

+0

감사합니다! 나는 그것을 시도 할 것이다. :) – Kaori