좋은 웹 애플리케이션은 고정된 크기가 아닌 Blockly의 크기를 조정하여 화면의 사용 가능한 공간을 채웁니다. 이렇게 하는 방법에는 iframe, CSS, 자바스크립트 위치 사용 등 여러 가지가 있습니다. 이 페이지에서는 강력하고 유연한 오버레이 접근 방식을 보여줍니다.
이 절차는 3단계로 이루어집니다. 첫 번째 단계는 영역을 정의하는 것입니다. 두 번째 단계는 Blockly를 삽입하는 것입니다. 세 번째 단계는 이 영역 위에 Blockly를 배치하는 것입니다.
1. 영역 정의
HTML 테이블 또는 CSS와 함께 div
를 사용하여 페이지 크기가 조절될 때 리플로우되는 빈 영역을 만듭니다.
영역에 ID가 있는지 확인합니다 (이 페이지에서는 blocklyArea
라고 함).
다음은 화면 하단을 채우는 표 셀의 실시간 데모입니다.
2. 작업공간 삽입
Blockly를 삽입하는 방법은 고정된 크기의 Blockly 삽입에 설명된 프로세스와 동일합니다.
코드, blocklyDiv
요소, 도구 상자, 삽입 호출을 추가합니다.
이제 Blockly가 페이지에서 실행되어야 하며 배치되어야 할 위치(아마도 화면 밖일 수 있음)가 아니어야 합니다.
3. 작업공간 배치
마지막 단계는 blocklyDiv
요소를 blocklyArea
요소 위에 배치하는 것입니다. 이렇게 하려면 blocklyDiv
에서 height
및 width
스타일을 삭제하고 절대 위치를 추가합니다.
<div id="blocklyDiv" style="position: absolute"></div>
그런 다음 삽입 스크립트를 'blocklyArea' 위에 'blocklyDiv'도 배치하는 스크립트로 바꿉니다.
const blocklyArea = document.getElementById('blocklyArea');
const blocklyDiv = document.getElementById('blocklyDiv');
const workspace = Blockly.inject(blocklyDiv,
{toolbox: document.getElementById('toolbox')});
const onresize = function(e) {
// Compute the absolute coordinates and dimensions of blocklyArea.
const element = blocklyArea;
let x = 0;
let y = 0;
do {
x += element.offsetLeft;
y += element.offsetTop;
element = element.offsetParent;
} while (element);
// Position blocklyDiv over blocklyArea.
blocklyDiv.style.left = x + 'px';
blocklyDiv.style.top = y + 'px';
blocklyDiv.style.width = blocklyArea.offsetWidth + 'px';
blocklyDiv.style.height = blocklyArea.offsetHeight + 'px';
Blockly.svgResize(workspace);
};
window.addEventListener('resize', onresize, false);
onresize();
화면 하단을 채우는 Blockly의 실시간 데모를 확인해 보세요.