jQuery UI の Resizable プラグインを使った、ドラッグ&ドロップでサイズを変更できるボックスにおいて、大きさを変更するとき、アニメーション動作をしながら、サイズを変化させるには、animate オプションを使う。
大きさを変更するとき、ドット・ボーダーのボックスが現れるので、ドット・ボーダーのボックスの大きさを変更し、ドロップすると、後から追いかけるように、実際のボックスのサイズが、アニメーション動作をしながら拡大縮小する。
実装例(サンプル)
実装例の動作について
- ボックスの右端にカーソルを合わせると、カーソルが左右リサイズ用カーソル形状に変わる。ドラッグして左右に動かすと、ドット・ボーダーのボックスが現れるので、ドット・ボーダーのボックスの幅を変更し、ドロップすると、後から追いかけるように、実際のボックスの幅がアニメーション動作をしながら変化する。
- ボックスの下端にカーソルを合わせると、カーソルが上下リサイズ用カーソル形状に変わる。ドラッグして上下に動かすと、ドット・ボーダーのボックスが現れるので、ドット・ボーダーのボックスの高さを変更し、ドロップすると、後から追いかけるように、実際のボックスの高さがアニメーション動作をしながら変化する。
- ボックスの右下端にカーソルを合わせると、カーソルが左上右下リサイズ用カーソル形状に変わる。ドラッグして左上か右下へ動かすと、ドット・ボーダーのボックスが現れるので、ドット・ボーダーのボックスの大きさを変更し、ドロップすると、後から追いかけるように、実際のボックスの大きさがアニメーション動作をしながら変化する。
実装例のソースコード
読み込み
読み込み方は、2種類ある。パスは、それぞれ、アップロードした場所を指定する。
まとめて読み込む場合
<link rel="stylesheet" href="themes/base/jquery.ui.all.css">
<script type="text/javascript" src="jquery-1.4.2.js"></script>
<script type="text/javascript" src="ui/jquery-ui-1.8.12.custom.min.js"></script>
<script type="text/javascript" src="jquery-1.4.2.js"></script>
<script type="text/javascript" src="ui/jquery-ui-1.8.12.custom.min.js"></script>
個別に読み込む場合
<link rel="stylesheet" href="themes/base/jquery.ui.all.css">
<script type="text/javascript" src="jquery-1.4.2.js"></script>
<script type="text/javascript" src="ui/jquery.ui.core.js"></script>
<script type="text/javascript" src="ui/jquery.ui.widget.js"></script>
<script type="text/javascript" src="ui/jquery.ui.mouse.js"></script>
<script type="text/javascript" src="ui/jquery.ui.resizable.js"></script>
<script type="text/javascript" src="jquery-1.4.2.js"></script>
<script type="text/javascript" src="ui/jquery.ui.core.js"></script>
<script type="text/javascript" src="ui/jquery.ui.widget.js"></script>
<script type="text/javascript" src="ui/jquery.ui.mouse.js"></script>
<script type="text/javascript" src="ui/jquery.ui.resizable.js"></script>
JavaScript
<script>
<!--
jQuery( function() {
jQuery( '#jquery-ui-resizable' ) . resizable( {
animate: true,
} );
} );
// -->
</script>
<!--
jQuery( function() {
jQuery( '#jquery-ui-resizable' ) . resizable( {
animate: true,
} );
} );
// -->
</script>
CSS
<style>
<!--
#jquery-ui-resizable {
width: 300px;
height: 100px;
padding: 0.5em;
}
#jquery-ui-resizable h3 {
text-align: center;
margin: 0px 0px 0.5em 0px;
}
.ui-resizable-helper {
border: 1px dotted gray;
}
-->
</style>
<!--
#jquery-ui-resizable {
width: 300px;
height: 100px;
padding: 0.5em;
}
#jquery-ui-resizable h3 {
text-align: center;
margin: 0px 0px 0.5em 0px;
}
.ui-resizable-helper {
border: 1px dotted gray;
}
-->
</style>
HTML
<div id="jquery-ui-resizable" class="ui-widget-content">
<h3 class="ui-widget-header">Resizable</h3>
<p>このボックスは、サイズを変更できる。</p>
</div>
<h3 class="ui-widget-header">Resizable</h3>
<p>このボックスは、サイズを変更できる。</p>
</div>