ここで同様の質問に答えました:
https://stackoverflow.com/a/12717983/1560583
これが役立つことを願っています。以下の回答を再投稿しました。
以下は、Zerb Foundation 3 レスポンシブ Web フレームワーク、Javascript、jQuery、および Processing.js を使用してこの問題にアプローチした方法です。ソースを掘り下げたい場合は、Living Map Projectをご覧ください。
JavaScript / jqueryで:
// handle page resizing
$(window).resize(function() {
var pjs = Processing.getInstanceById('livingmap');
pjs.resizeSketch(document.getElementById('div_p5canvas').offsetWidth, document.getElementById('div_p5canvas').offsetHeight);
} );
あなたの .pde 処理 js コードで (注: 計算は、zurb の基礎 3、定義したグリッド、およびそれがピクセルとしてどのように変換されたかを使用してうまく機能したと感じたものでした:
void resizeSketch(int w, int h) {
if (w < 680) {
size(w, floor(float(w)/680*610) - 30);
} else size(680, 610 - 30);
}
あなたのhtmlで:
<div class="flex-video widescreen" id="div_p5canvas"
<canvas id="livingmap" data-processing-sources="livingmap_2.pde" style="height:auto; width:auto; focus { outline: 0; }" tabindex="1"></canvas>
</div>