Movendo Elementos HTML com mouse (crossbrowser).
Nesse artigo irei mostar como mover elementos html com o mouse.
1º Vamos fazer o
download da versão 1.2.1;
2º 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.
3º Criar um arquivo HTML (mover.html):
<title>Movendo elementods HTML
</title> <!-- JavaScripts necessários para você poder mover os elementos HTML -->
<script type="text/javascript" src="jquery-1.2.1.pack.js"></script>
<!-- utilizamos somente os arquivo necessários do plugin UI para mover elementos -->
<script type="text/javascript" src="jquery.ui-1.0/ui.mouse.js"></script> <script type="text/javascript" src="jquery.ui-1.0/ui.draggable.js"></script> <script type="text/javascript" src="jquery.ui-1.0/ui.draggable.ext.js"></script> <script type="text/javascript" src="jquery.ui-1.0/ui.droppable.js"></script> <script type="text/javascript" src="jquery.ui-1.0/ui.droppable.ext.js"></script>
/* Tudo que estiver dentro desse bloco de código será executado após o carregamento da página*/
$(function() {
/* O elemento com class .block (poder sem vários) poderá ser movido enquanto movimenta, ele levara junto um clone dele */
$(".block").draggable({helper: 'clone'});
/* o elemento com class drop está apto a receber um elemento */
$(".drop").droppable({
/* definimos que ele receberá o elemento de class .block, apenas .block */
accept: ".block",
/* quando movermos o .block, colocamos um novo estilo no elemento drop (opcional) */
activeClass: 'droppable-active',
/* quando passamos o .block sobre o class .drop, podemos mudá-lo de estilo */
hoverClass: 'droppable-hover',
/* tolerância para aceitar o elemento, nesse caso é quando o cursos tocar no elemento */
tolerance: 'pointer',
/* quando soltamos o elemento .block sobre o elemento .drop, executamos algun javascript*/
drop: function(ev, ui) {
/* para usufruir dos atributos do objeto que esta sendo movido utilize o exemplo a baixo como base*/
// --> $(ui.draggable.element).text();
/* variável this aponta para o elemento que recebe o objeto */
$(this).append("
<p>Dropped!
</p>");
}
});
});
</script>
<!-- Estilo qualquer -->
.block {
width: 100px;
height: 100px;
background: #990000;
color: #FFFFFF;
cursor: move;
}
.drop {
width: 350px;
background: #000099;
color: #FFFFFF;
}
.drop p {
padding: 10px;
}
.droppable-active { background: green; }
.droppable-hover { background: yellow; color: #000000; }
</style>
</head>
<!-- Elemento a ser movido, repare no class dele -->
<div class="block">Elemento a ser movido
</div>
<!-- Elemento re receberá o elemento que esta sendo movido, adicionaremos outro <p>
dentro desse elemento -->
<p>Esse elemento irá receber o ítem que será movido
</p> </div>
</body>
</html>
4º Agora é utilizar sua criatividade para incrementar suas aplicações utilizando o recurso apresentado.