コンテンツの表示領域をドラッグ&ドロップで変更する
ドラッグ&ドロップで表示領域を自由に変更したい場合、"split.js"を導入する必要がある。
また、適用したい箇所ではレイアウトをフレックス、もしくはグリッドで統一する必要があるので、手直しが結構面倒であった。
split.jsを導入するには、"npm install split.js"をターミナルで入力するか、以下のスクリプトタグをHTMLファイルのheadタグ内に設置する。
<script
src="https://cdnjs.cloudflare.com/ajax/libs/split.js/1.6.5/split.min.js"
integrity="sha512-lNjb0qWDVvt1zfSiXufaxtlFtenve3BLbvljxuMXuSr0DE0HYp5OhX0u89uwNd6MvlX1bgJ8ulfG4JMGurs8UA=="
crossorigin="anonymous"
referrerpolicy="no-referrer"
></script>
次に、JSファイル内で、以下のコードを記述する。
各パラメーターについては、好きなように設定する。
window.addEventListener("DOMContentLoaded", () => {
Split(["#split-horizontal-left", "#split-horizontal-right"], {
direction: "horizontal",
gutterSize: 8, // Size of the gutter in pixels
gutterAlign: "center",
cursor: "col-resize",
});
Split(["#split-vertical-left", "#split-vertical-right"], {
direction: "vertical",
gutterSize: 8, // Size of the gutter in pixels
gutterAlign: "center",
cursor: "row-resize",
});
});
CSSファイルには、以下の記述を行う。
.gutter-horizontal {
background-color: #6b7280;
width: 2px;
border: solid;
border-width: 0 3px;
border-color: rgb(1, 4, 9);
cursor: grab;
}
.gutter-vertical {
background-color: #6b7280;
height: 2px;
border: solid;
border-width: 3px 0;
border-color: rgb(1, 4, 9);
cursor: grab;
}
最後に、HTMLで任意のタグにidを記述すれば、ドラッグ&ドロップで表示領域を自由に変更出来る。
現時点でsplit.jsにおいて、フレックス・グリッド両方を併用する方法はわからないが、現時点では対応していないのか、書き方が悪いのかはわからない。
もし併用出来れば、より柔軟なレイアウトを実装出来そうな気がする。
この記事が気に入ったらサポートをしてみませんか?