JQuery-UIのResizableとDraggableを利用してスケジュール表を作る その1(とりあえずお試し)
おはようございます。
以前紹介した「FullCalendar」は、とても便利なんですが
複数人の予定を操作したり、参照したい時には少々使い勝手が悪いですよね。
FullCalendar自体を拡張して作りたいのはやまやまですが、
以前から Googleカレンダーみたいな操作の実現に興味があったので、自分で(JQueryの力を借りて)実装してみたいと思います。
記事も複数回(何回になるかわかりません)にわたって実装していき、完成形は、縦軸に人・横軸に日付や時刻とします。
とりあえず、実現に必要そうなプラグインを簡単なサンプルで触ってみます。
スポンサーリンク
JQuery-UI(Rsizable/Draggable)
JQuery-UIのプラグイン。
要素(イメージでもブロック要素でも)のサイズをドラッグで変更したり、要素事態をドラッグして移動できるようにしてくれます。
これも自分で実装すると、なかなか大変なんですよね。助かります。
プログラム
まずは要素のスタイルを簡単に定義します。
style.css
div {
width:200px;
height:100px;
text-align: center;
}
span {
padding: 1rem;
}
.panel {
margin: 1px;
}
.panel1 {
background-color:#99cfe5;
}
.panel2 {
background-color:#95dfd6;
}
.panel3 {
background-color:#f2f5aa;
}
.panel4 {
background-color:#f3c0ab;
}
.helper {
background-color: gray;
}
#container {
width:500px;
height:500px;
border: 1px solid black;
}
画面も簡単に。
sample.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>要素のドラッグとリサイズのサンプル</title>
<link rel="stylesheet" href="http://code.jquery.com/ui/1.10.0/themes/base/jquery-ui.css" />
<link rel="stylesheet" href="./css/style.css" />
</head>
<body>
<div id="container">
<div id="panel1" class="panel panel1"><span class="label"><span>サイズ変更</span></span></div>
<div id="panel2" class="panel panel2"><span class="label">サイズ変更(横)</span></div>
<div id="panel3" class="panel panel3"><span class="label">サイズ変更(縦)</span></div>
<div id="panel4" class="panel panel4"><span class="label">移動</span></div>
</div>
</body>
<script type="text/javascript" src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script src="http://code.jquery.com/jquery-1.8.3.js"></script>
<script src="http://code.jquery.com/ui/1.10.0/jquery-ui.js"></script>
<script>
$(document).ready( function () {
$('.panel1').resizable({
containment: "#container"
, minWidth: 200
, minHeight: 100
});
$('.panel2').resizable({
containment: "#container"
, handles: "w,e"
, minWidth: 200
, minHeight: 100
});
$('.panel3').resizable({
containment: "#container"
, handles: "n,s"
, minWidth: 200
, minHeight: 100
});
$('#panel4').draggable({
containment: "#container"
, minWidth: 200
, minHeight: 100
});
} );
</script>
</html>触ってみる
それぞれサイズ変更、移動してみた結果です。
まとめ
こんな感じで要素を動かせるので、
これをスケジュールに利用していきます。
次回はもう少し掘り下げて色々弄っていければと思います。
ではでは。
ディスカッション
コメント一覧
まだ、コメントがありません