jQuery UI Droppable - Simple photo manager : UI Droppable « jQuery « JavaScript Tutorial

JavaScript Tutorial
1. Language Basics
2. Operators
3. Statement
4. Development
5. Number Data Type
6. String
7. Function
8. Global
9. Math
10. Form
11. Array
12. Date
13. Dialogs
14. Document
15. Event
16. Location
17. Navigator
18. Screen
19. Window
20. History
21. HTML Tags
22. Style
23. DOM Node
24. Drag Drop
25. Object Oriented
26. Regular Expressions
27. XML
28. GUI Components
29. Dojo toolkit
30. jQuery
31. Animation
32. MS JScript
Java
Java Tutorial
Java Source Code / Java Documentation
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
JavaScript Tutorial » jQuery » UI Droppable 
30. 143. 2. jQuery UI Droppable - Simple photo manager
<!--
  jQuery UI Effects Blind 1.7.2
 
  Copyright (c2009 AUTHORS.txt (http://jqueryui.com/about)
  Dual licensed under the MIT (MIT-LICENSE.txt)
  and GPL (GPL-LICENSE.txtlicenses.
 
 
-->
<!doctype html>
<html lang="en">
  <head>
    <title>jQuery UI Droppable - Simple photo manager</title>
    <link type="text/css" href="js/themes/base/ui.all.css" rel="stylesheet" />
    <script type="text/javascript" src="js/jquery-1.3.2.js"></script>
    <script type="text/javascript" src="js/ui/ui.core.js"></script>
    <script type="text/javascript" src="js/ui/ui.draggable.js"></script>
    <script type="text/javascript" src="js/ui/ui.droppable.js"></script>
    <script type="text/javascript" src="js/ui/ui.resizable.js"></script>
    <script type="text/javascript" src="js/ui/ui.dialog.js"></script>
    <link type="text/css" href="js/demos.css" rel="stylesheet" />
    <style type="text/css">
      #gallery float: left; width: 65%; min-height: 12em; html #gallery height: 12em; /* IE6 */
      .gallery.custom-state-active background: #eee; }
      .gallery li float: left; width: 96px; padding: 0.4em; margin: 0 0.4em 0.4em 0; text-align: center; }
      .gallery li h5 margin: 0 0 0.4em; cursor: move; }
      .gallery li a float: right; }
      .gallery li a.ui-icon-zoomin float: left; }
      .gallery li img width: 100%; cursor: move; }

      #trash float: right; width: 32%; min-height: 18em; padding: 1%;html #trash height: 18em; /* IE6 */
      #trash h4 line-height: 16px; margin: 0 0 0.4em; }
      #trash h4 .ui-icon float: left; }
      #trash .gallery h5 display: none; }
    </style>
    <script type="text/javascript">
      $(function() {
        // there's the gallery and the trash
        var $gallery = $('#gallery'), $trash = $('#trash');

        // let the gallery items be draggable
        $('li',$gallery).draggable({
          cancel: 'a.ui-icon',// clicking an icon won't initiate dragging
          revert: 'invalid', // when not dropped, the item will revert back to its initial position
          containment: $('#demo-frame').length ? '#demo-frame' : 'document', // stick to demo-frame if present
          helper: 'clone',
          cursor: 'move'
        });

        // let the trash be droppable, accepting the gallery items
        $trash.droppable({
          accept: '#gallery > li',
          activeClass: 'ui-state-highlight',
          drop: function(ev, ui) {
            deleteImage(ui.draggable);
          }
        });

        // let the gallery be droppable as well, accepting items from the trash
        $gallery.droppable({
          accept: '#trash li',
          activeClass: 'custom-state-active',
          drop: function(ev, ui) {
            recycleImage(ui.draggable);
          }
        });

        // image deletion function
        var recycle_icon = '<a href="link/to/recycle/script/when/we/have/js/off" title="Recycle this image" class="ui-icon ui-icon-refresh">Recycle image</a>';
        function deleteImage($item) {
          $item.fadeOut(function() {
            var $list = $('ul',$trash).length ? $('ul',$trash: $('<uclass="gallery ui-helper-reset"/>').appendTo($trash);

            $item.find('a.ui-icon-trash').remove();
            $item.append(recycle_icon).appendTo($list).fadeIn(function() {
              $item.animate({ width: '48px' }).find('img').animate({ height: '36px' });
            });
          });
        }

        // image recycle function
        var trash_icon = '<a href="link/to/trash/script/when/we/have/js/off" title="Delete this image" class="ui-icon ui-icon-trash">Delete image</a>';
        function recycleImage($item) {
          $item.fadeOut(function() {
            $item.find('a.ui-icon-refresh').remove();
            $item.css('width','96px').append(trash_icon).find('img').css('height','72px').end().appendTo($gallery).fadeIn();
          });
        }

        // image preview function, demonstrating the ui.dialog used as a modal window
        function viewLargerImage($link) {
          var src = $link.attr('href');
          var title = $link.siblings('img').attr('alt');
          var $modal = $('img[src$="'+src+'"]');

          if ($modal.length) {
            $modal.dialog('open')
          else {
            var img = $('<img alt="'+title+'" width="384" height="288" style="display:none;padding: 8px;" />')
              .attr('src',src).appendTo('body');
            setTimeout(function() {
              img.dialog({
                  title: title,
                  width: 400,
                  modal: true
                });
            }1);
          }
        }

        // resolve the icons behavior with event delegation
        $('ul.gallery > li').click(function(ev) {
          var $item = $(this);
          var $target = $(ev.target);

          if ($target.is('a.ui-icon-trash')) {
            deleteImage($item);
          else if ($target.is('a.ui-icon-zoomin')) {
            viewLargerImage($target);
          else if ($target.is('a.ui-icon-refresh')) {
            recycleImage($item);
          }

          return false;
        });
      });
    </script>
  </head>
  <body>
    <div class="demo ui-widget ui-helper-clearfix">

      <ul id="gallery" class="gallery ui-helper-reset ui-helper-clearfix">
        <li class="ui-widget-content ui-corner-tr">
          <h5 class="ui-widget-header">High Tatras</h5>
          <img src="images/high_tatras_min.jpg" alt="The peaks of High Tatras" width="96" height="72" />
          <a href="images/high_tatras.jpg" title="View larger image" class="ui-icon ui-icon-zoomin">View larger</a>
          <a href="link/to/trash/script/when/we/have/js/off" title="Delete this image" class="ui-icon ui-icon-trash">Delete image</a>
        </li>
        <li class="ui-widget-content ui-corner-tr">
          <h5 class="ui-widget-header">High Tatras 2</h5>
          <img src="images/high_tatras2_min.jpg" alt="The chalet at the Green mountain lake" width="96" height="72" />
          <a href="images/high_tatras2.jpg" title="View larger image" class="ui-icon ui-icon-zoomin">View larger</a>
          <a href="link/to/trash/script/when/we/have/js/off" title="Delete this image" class="ui-icon ui-icon-trash">Delete image</a>
        </li>
        <li class="ui-widget-content ui-corner-tr">
          <h5 class="ui-widget-header">High Tatras 3</h5>
          <img src="images/high_tatras3_min.jpg" alt="Planning the ascent" width="96" height="72" />
          <a href="images/high_tatras3.jpg" title="View larger image" class="ui-icon ui-icon-zoomin">View larger</a>
          <a href="link/to/trash/script/when/we/have/js/off" title="Delete this image" class="ui-icon ui-icon-trash">Delete image</a>
        </li>
        <li class="ui-widget-content ui-corner-tr">
          <h5 class="ui-widget-header">High Tatras 4</h5>
          <img src="images/high_tatras4_min.jpg" alt="On top of Kozi kopka" width="96" height="72" />
          <a href="images/high_tatras4.jpg" title="View larger image" class="ui-icon ui-icon-zoomin">View larger</a>
          <a href="link/to/trash/script/when/we/have/js/off" title="Delete this image" class="ui-icon ui-icon-trash">Delete image</a>
        </li>
      </ul>

      <div id="trash" class="ui-widget-content ui-state-default">
        <h4 class="ui-widget-header"><span class="ui-icon ui-icon-trash">Trash</span> Trash</h4>
      </div>

    </div><!-- End demo -->

    <div class="demo-description">

      <p>You can delete an image either by dragging it to the Trash or by clicking the trash icon.</p>
      <p>You can "recycle" an image by dragging it back to the gallery or by clicking the recycle icon.</p>
      <p>You can view larger image by clicking the zoom icon. jQuery UI dialog widget is used for the modal window.</p>

    </div><!-- End demo-description -->
  </body>
</html>
30. 143. UI Droppable
30. 143. 1. jQuery UI Droppable - Accept Demo
30. 143. 2. jQuery UI Droppable - Simple photo manager
30. 143. 3. jQuery UI Droppable - Prevent propagation
30. 143. 4. jQuery UI Droppable - Revert draggable position
30. 143. 5. jQuery UI Droppable - Visual feedback
30. 143. 6. Get relative and absolute position of the dropped object
30. 143. 7. Droppable object
30. 143. 8. Mark accepted object
30. 143. 9. Mark active class
30. 143. 10. Droppable accepted function
30. 143. 11. Drag and drop events: activate, deactivate, drop, out, over
30. 143. 12. Drop to different objects and get their id
www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.