jQuery:タイルを2列に並べ替えます。localStorageに保存されているデフォルトの順序

サリンダーシン

ある列から別の列にドラッグアンドドロップできる柔軟性を備えた2つの異なる列にアイテムを配置したいと思います。注文をlocalStorageに保存して、ページ読み込み時のレイアウトを維持します。

これは私がこれまでに持っているものです:

(多大な感謝を込めて)これが私のコードのベースです:http//webdeveloperplus.com/jquery/collpasible-drag-drop-panels/

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Drag Drop Panels - Web Developer Plus Demos</title>
<script type="text/javascript" src="js/jquery-1.3.2.js" ></script>
<script type="text/javascript" src="js/jquery-ui-1.7.2.custom.min.js" ></script>
<link rel="stylesheet" type="text/css" href="styles.css" />
<link rel="stylesheet" type="text/css" href="print.css" />

<script type="text/javascript" >
$(function(){
    $(document).ready(function(){
        var data = JSON.parse(localStorage.getItem("order"));
        $.each(data, function(i, val) {
            var columnId = data[i]["columnId"];
            var itemorder = data[i]["itemorder"];
            var orderArray = itemorder.toString().split(',');
            var listArray = $('.column .dragbox');
            for (var i = 0; i < orderArray.length; i++) {
                $('.column').append(listArray[orderArray[i]-1]);
            }
        });
    });

    $('.dragbox').each(function(){
        $(this).hover(function(){
            $(this).find('h2').addClass('collapse');
        }, function(){
            $(this).find('h2').removeClass('collapse');
        })
        .find('h2').hover(function(){
            $(this).find('.configure').css('visibility', 'visible');
        }, function(){
            $(this).find('.configure').css('visibility', 'hidden');
        })
        .click(function(){
            $(this).siblings('.dragbox-content').toggle();
        })
        .end()
        .find('.configure').css('visibility', 'hidden');
    });
    $('.column').sortable({
        connectWith: '.column',
        handle: 'h2',
        cursor: 'move',
        placeholder: 'placeholder',
        forcePlaceholderSize: true,
        opacity: 0.4,
        stop: function(event, ui){
            $(ui.item).find('h2').click();
            var sortorder='';
            var dataSave = [];
            $('.column').each(function(){
                var columnId=$(this).attr('id');
                var itemorder=$(this).sortable('toArray');

                item = {
                    'columnId':columnId,
                    'itemorder':itemorder,
                };
                dataSave.push(item);
                localStorage.setItem("order", JSON.stringify(dataSave));
            });
        }
    })
    .disableSelection();
});
</script>
</head>
<body>
<h3>Drag n Drop Panels</h3>
<div class="column" id="column1">
    <div class="dragbox" id="1" >
        <h2>Handle 1</h2>
        <div class="dragbox-content" > This is a panel. </div>
    </div>
    <div class="dragbox" id="2" >
        <h2>Handle 2</h2>
        <div class="dragbox-content" > This is a panel. </div>
    </div>
    <div class="dragbox" id="3" >
        <h2>Handle 3</h2>
        <div class="dragbox-content" > This is a panel. </div>
    </div>
</div>
<div class="column" id="column2" >
    <div class="dragbox" id="4" >
        <h2>Handle 4</h2>
        <div class="dragbox-content" > This is a panel. </div>
    </div>
    <div class="dragbox" id="5" >
        <h2>Handle 5</h2>
        <div class="dragbox-content" > This is a panel. </div>
    </div>
    <div class="dragbox" id="6" >
        <h2>Handle 6</h2>
        <div class="dragbox-content" > This is a panel. </div>
    </div>
</div>
</body>
</html>
Souleste

jQuery UIの並べ替え可能なポートレットを調べますhttps//jqueryui.com/sortable/#portlets

このようにして、パネルをドロップするデフォルトの領域があります。

$(function() {
  $(".column").sortable({
    connectWith: ".column",
    handle: ".portlet-header",
    cancel: ".portlet-toggle",
    placeholder: "portlet-placeholder ui-corner-all"
  });

  $(".portlet")
    .addClass("ui-widget ui-widget-content ui-helper-clearfix ui-corner-all")
    .find(".portlet-header")
    .addClass("ui-widget-header ui-corner-all")
    .prepend("<span class='ui-icon ui-icon-minusthick portlet-toggle'></span>");

  $(".portlet-toggle").on("click", function() {
    var icon = $(this);
    icon.toggleClass("ui-icon-minusthick ui-icon-plusthick");
    icon.closest(".portlet").find(".portlet-content").toggle();
  });
});
body {
  min-width: 520px;
}

.column {
  width: 170px;
  float: left;
  padding-bottom: 100px;
}

.portlet {
  margin: 0 1em 1em 0;
  padding: 0.3em;
}

.portlet-header {
  padding: 0.2em 0.3em;
  margin-bottom: 0.5em;
  position: relative;
}

.portlet-toggle {
  position: absolute;
  top: 50%;
  right: 0;
  margin-top: -8px;
}

.portlet-content {
  padding: 0.4em;
}

.portlet-placeholder {
  border: 1px dotted black;
  margin: 0 1em 1em 0;
  height: 50px;
}
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<div class="column">

  <div class="portlet">
    <div class="portlet-header">Feeds</div>
    <div class="portlet-content">Lorem ipsum dolor sit amet, consectetuer adipiscing elit</div>
  </div>

  <div class="portlet">
    <div class="portlet-header">News</div>
    <div class="portlet-content">Lorem ipsum dolor sit amet, consectetuer adipiscing elit</div>
  </div>

</div>

<div class="column">

  <div class="portlet">
    <div class="portlet-header">Shopping</div>
    <div class="portlet-content">Lorem ipsum dolor sit amet, consectetuer adipiscing elit</div>
  </div>

</div>

<div class="column">

  <div class="portlet">
    <div class="portlet-header">Links</div>
    <div class="portlet-content">Lorem ipsum dolor sit amet, consectetuer adipiscing elit</div>
  </div>

  <div class="portlet">
    <div class="portlet-header">Images</div>
    <div class="portlet-content">Lorem ipsum dolor sit amet, consectetuer adipiscing elit</div>
  </div>

</div>

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

配列をデフォルトの順序から並べ替えます

分類Dev

Wordpressで、カスタム投稿タイプのデフォルトの管理者の並べ替え順序をカスタム列に設定するにはどうすればよいですか?

分類Dev

Windows 7でデフォルトの並べ替え順序を追加するにはどうすればよいですか?

分類Dev

SQLServerのデフォルトの並べ替え順序を上書きする

分類Dev

Thunderbirdのデフォルトの並べ替え順序を変更する

分類Dev

トーチ2Dテンソル(「タイル」)を特定の順序に並べ替えます

分類Dev

パフォーマンスの高速化:Mysqlデータのフェッチ順序またはPHPによるフィルタリングされていないデータの並べ替え?

分類Dev

Symfony Finderコンポーネントを使用してDESCの順序でファイルを並べ替えるにはどうすればよいですか?

分類Dev

フォルダ名を配列に保存し、VBAをアルファベット順に並べ替えます

分類Dev

WPF DataGrid列のデフォルトの並べ替え方向を降順に設定するにはどうすればよいですか?

分類Dev

最初の2列だけでファイルを並べ替え、列の値が同じ場合に備えて入力順序を維持します

分類Dev

行をアルファベット順ではないカスタマイズされた順序に並べ替える

分類Dev

SilverlightDataGridの列のデフォルトの並べ替え順序が異なる

分類Dev

Explorer ++でデフォルトのファイル/フォルダーの並べ替えとしてタイプによる並べ替えを行う方法

分類Dev

タプルの値に基づいて、タプルのリストをさまざまな順序で並べ替える

分類Dev

2つのプロパティを使用してオブジェクトの配列を並べ替えるが、条件に応じて並べ替え順序で条件付きでグループ化するにはどうすればよいですか?

分類Dev

タプルのリストでのマルチレベルの並べ替えですが、並べ替え順序が変更されています

分類Dev

BASHの複数列ファイルの並べ替え順序を逆にする

分類Dev

2番目のフィールドに基づいてソートし、最初の列が同じである行を並べ替えますが、各グループの2番目のフィールドの順序は維持します

分類Dev

特定のwoocommerceカテゴリのデフォルトの並べ替え順序を「人気」に変更することはできません

分類Dev

ファイルの2番目の列に基づいてデータを並べ替える

分類Dev

ファイルを行の長さで並べ替えてから、2番目のキーをアルファベット順に並べ替える方法は?

分類Dev

オブジェクトの配列を取得し、アルファベット順に並べ替えられた小さな配列に並べ替えます

分類Dev

パンダのデータフレームをインデックスで並べ替え、次にアルファベット順に並べ替えます

分類Dev

Rの因子レベルの所定の順序でデータフレームを並べ替えるにはどうすればよいですか?

分類Dev

フォルダ内のすべてのドキュメントを特定の順序でマージし、マージされた出力を並べ替えます

分類Dev

ディレクトリのリストをアルファベット順に並べ替えて、特定の文字列の後に並べ替える最初の値を取得するにはどうすればよいですか?

分類Dev

Pythonで複数のデータフレームを連結すると、列がアルファベット順に並べ替えられます

分類Dev

文字の配列をアルファベット順に並べ替え、次に長さで並べ替える

Related 関連記事

  1. 1

    配列をデフォルトの順序から並べ替えます

  2. 2

    Wordpressで、カスタム投稿タイプのデフォルトの管理者の並べ替え順序をカスタム列に設定するにはどうすればよいですか?

  3. 3

    Windows 7でデフォルトの並べ替え順序を追加するにはどうすればよいですか?

  4. 4

    SQLServerのデフォルトの並べ替え順序を上書きする

  5. 5

    Thunderbirdのデフォルトの並べ替え順序を変更する

  6. 6

    トーチ2Dテンソル(「タイル」)を特定の順序に並べ替えます

  7. 7

    パフォーマンスの高速化:Mysqlデータのフェッチ順序またはPHPによるフィルタリングされていないデータの並べ替え?

  8. 8

    Symfony Finderコンポーネントを使用してDESCの順序でファイルを並べ替えるにはどうすればよいですか?

  9. 9

    フォルダ名を配列に保存し、VBAをアルファベット順に並べ替えます

  10. 10

    WPF DataGrid列のデフォルトの並べ替え方向を降順に設定するにはどうすればよいですか?

  11. 11

    最初の2列だけでファイルを並べ替え、列の値が同じ場合に備えて入力順序を維持します

  12. 12

    行をアルファベット順ではないカスタマイズされた順序に並べ替える

  13. 13

    SilverlightDataGridの列のデフォルトの並べ替え順序が異なる

  14. 14

    Explorer ++でデフォルトのファイル/フォルダーの並べ替えとしてタイプによる並べ替えを行う方法

  15. 15

    タプルの値に基づいて、タプルのリストをさまざまな順序で並べ替える

  16. 16

    2つのプロパティを使用してオブジェクトの配列を並べ替えるが、条件に応じて並べ替え順序で条件付きでグループ化するにはどうすればよいですか?

  17. 17

    タプルのリストでのマルチレベルの並べ替えですが、並べ替え順序が変更されています

  18. 18

    BASHの複数列ファイルの並べ替え順序を逆にする

  19. 19

    2番目のフィールドに基づいてソートし、最初の列が同じである行を並べ替えますが、各グループの2番目のフィールドの順序は維持します

  20. 20

    特定のwoocommerceカテゴリのデフォルトの並べ替え順序を「人気」に変更することはできません

  21. 21

    ファイルの2番目の列に基づいてデータを並べ替える

  22. 22

    ファイルを行の長さで並べ替えてから、2番目のキーをアルファベット順に並べ替える方法は?

  23. 23

    オブジェクトの配列を取得し、アルファベット順に並べ替えられた小さな配列に並べ替えます

  24. 24

    パンダのデータフレームをインデックスで並べ替え、次にアルファベット順に並べ替えます

  25. 25

    Rの因子レベルの所定の順序でデータフレームを並べ替えるにはどうすればよいですか?

  26. 26

    フォルダ内のすべてのドキュメントを特定の順序でマージし、マージされた出力を並べ替えます

  27. 27

    ディレクトリのリストをアルファベット順に並べ替えて、特定の文字列の後に並べ替える最初の値を取得するにはどうすればよいですか?

  28. 28

    Pythonで複数のデータフレームを連結すると、列がアルファベット順に並べ替えられます

  29. 29

    文字の配列をアルファベット順に並べ替え、次に長さで並べ替える

ホットタグ

アーカイブ