ドラッグ&ドロップによりタブの順番を並べ替えられるタブメニュー

jQuery UI の Tabs プラグインを使ったタブ型メニューにおいて、ドラッグ&ドロップにより、タブの順番を、並べ替えられるようにする方法。ドラッグ&ドロップで並べ替えられるようにするには、Sortable プラグインを併用する。

実装例(サンプル)

タブメニュー① の内容。

この実装例の、jQuery UI の CSS テーマは、デフォルトのテーマを読み込んで使っている。他の CSS テーマにも対応しているので、色々試してみるといい。

タブメニュー② の内容。

タブメニュー③の内容。

実装例の動作について

「タブメニュー①」「タブメニュー②」「タブメニュー③」の、それぞれのタブメニュー名をクリックすると、そのタブメニューの内容を開く。

「タブメニュー①」「タブメニュー②」「タブメニュー③」の、それぞれのタブメニューは、ドラッグ&ドロップによる並べ替えを行える。「タブメニュー①」をドラッグし、「タブメニュー②」「タブメニュー③」の間に移動すると、「タブメニュー②」が左へ移動し、「タブメニュー②」「タブメニュー③」の間にスペースができる。そのスペースへ「タブメニュー①」をドロップすることで、「タブメニュー②」「タブメニュー①」「タブメニュー③」の順番に変更できる。

実装例のソースコード

読み込み

読み込み方は、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>
個別に読み込む場合
<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.sortable.js"></script>
<script type="text/javascript" src="ui/jquery.ui.tabs.js"></script>

JavaScript

<script type="text/javascript">  
<!--
jQuery( function() {
    jQuery( '#jquery-ui-tabs' ) . tabs();
    jQuery( '.ui-tabs-nav' ) . sortable( {
        axis: 'x'
    } );
} );
// -->
</script>

HTML

<div id="jquery-ui-tabs">
    <ul>
        <li><a href="#jquery-ui-tabs-1">タブメニュー①</a></li>
        <li><a href="#jquery-ui-tabs-2">タブメニュー②</a></li>
        <li><a href="#jquery-ui-tabs-3">タブメニュー③</a></li>
    </ul>
    <div id="jquery-ui-tabs-1">
        <p>タブメニュー① の内容。</p>
        <p>この実装例の、jQuery UI の CSS テーマは、デフォルトのテーマを読み込んで使っている。他の CSS テーマにも対応しているので、色々試してみるといい。</p>
    </div>
    <div id="jquery-ui-tabs-2">
        <p>タブメニュー② の内容。</p>
    </div>
    <div id="jquery-ui-tabs-3">
        <p>タブメニュー③の内容。</p>
    </div>
</div>

スポンサード リンク

カテゴリー: JavaScript, jQuery, jQuery UI, Sortable, Tabs, メニュー パーマリンク