Palavra:   

Revista PHP / Java Script

Osdeni Sadzinski

Programador Pleno PHP, trabalha atualmente na UNESC (www.unesc.net) como Programador Web. tem conhecimentos em: PHP, AJAX, JavaScript, JSON, XHTML, CSS e MySql. Estudando: Java e Ruby on Rails.

Movendo Elementos HTML com mouse (crossbrowser).

Movendo Elementos HTML com mouse (crossbrowser).

Nesse artigo irei mostar como mover elementos html com o mouse.

Vamos fazer o download da versão 1.2.1;
Vamos fazer o download dos plugin jQuery UI;

Colocando a mão na massa!

Obs*: A explicação do código está inserida no mesmo em forma de comentários.

Criar um arquivo HTML (mover.html):
  1. <title>Movendo elementods HTML</title>
  2. <!-- JavaScripts necessários para você poder mover os elementos HTML -->
  3. <script type="text/javascript" src="jquery-1.2.1.pack.js"></script>
  4.  
  5. <!-- utilizamos somente os arquivo necessários do plugin UI para mover elementos -->
  6. <script type="text/javascript" src="jquery.ui-1.0/ui.mouse.js"></script>
  7. <script type="text/javascript" src="jquery.ui-1.0/ui.draggable.js"></script>
  8. <script type="text/javascript" src="jquery.ui-1.0/ui.draggable.ext.js"></script>
  9. <script type="text/javascript" src="jquery.ui-1.0/ui.droppable.js"></script>
  10. <script type="text/javascript" src="jquery.ui-1.0/ui.droppable.ext.js"></script>
  11.  
  12. <script type="text/javascript">
  13.  
  14. /* Tudo que estiver dentro desse bloco de código será executado após o carregamento da página*/
  15. $(function() {
  16.  
  17. /* O elemento com class .block (poder sem vários) poderá ser movido enquanto movimenta, ele levara junto um clone dele */
  18. $(".block").draggable({helper: 'clone'});
  19.  
  20. /* o elemento com class drop está apto a receber um elemento */
  21. $(".drop").droppable({
  22.  
  23. /* definimos que ele receberá o elemento de class .block, apenas .block */
  24. accept: ".block",
  25.  
  26. /* quando movermos o .block, colocamos um novo estilo no elemento drop (opcional) */
  27. activeClass: 'droppable-active',
  28.  
  29. /* quando passamos o .block sobre o class .drop, podemos mudá-lo de estilo */
  30. hoverClass: 'droppable-hover',
  31.  
  32. /* tolerância para aceitar o elemento, nesse caso é quando o cursos tocar no elemento */
  33. tolerance: 'pointer',
  34.  
  35. /* quando soltamos o elemento .block sobre o elemento .drop, executamos algun javascript*/
  36. drop: function(ev, ui) {
  37. /* para usufruir dos atributos do objeto que esta sendo movido utilize o exemplo a baixo como base*/
  38. // --> $(ui.draggable.element).text();
  39.  
  40. /* variável this aponta para o elemento que recebe o objeto */
  41. $(this).append("<p>Dropped!</p>");
  42. }
  43. });
  44. });
  45.  
  46. </script>
  47.  
  48. <!-- Estilo qualquer -->
  49. <style type="text/css">
  50. .block {
  51. width: 100px;
  52. height: 100px;
  53. background: #990000;
  54. color: #FFFFFF;
  55. cursor: move;
  56. }
  57.  
  58. .drop {
  59. width: 350px;
  60. background: #000099;
  61. color: #FFFFFF;
  62. }
  63. .drop p {
  64. padding: 10px;
  65. }
  66.  
  67. .droppable-active { background: green; }
  68. .droppable-hover { background: yellow; color: #000000; }
  69. </style>
  70. </head>
  71. <!-- Elemento a ser movido, repare no class dele -->
  72. <div class="block">Elemento a ser movido</div>
  73.  
  74. <!-- Elemento re receberá o elemento que esta sendo movido, adicionaremos outro <p>
  75. dentro desse elemento -->
  76. <div class="drop">
  77. <p>Esse elemento irá receber o ítem que será movido</p>
  78. </div>
  79. </body>
  80. </html>
Agora é utilizar sua criatividade para incrementar suas aplicações utilizando o recurso apresentado.

Opções de Interação