Coluna Dreamweaver – Boxes e listas arrastáveis com ajaxIntroduçãoÉ muito fácil e rápido criar boxes e listas arrastáveis utilizando a biblioteca ToolMan, que foi desenvolvida pelo Tim Taylor e não possui nenhuma restrição a sua utilização. O ToolMan utiliza Java script não-obstrutivo e todos seus arquivos pesam apenas 20Kb. São utilizados para criar boxes e listas; arrastáveis, editáveis e auto-ordenáveis. O Blog BeNLOG adaptou o ToolMan para trocar itens entre listas diferentes, veja um exemplo de listas arrastáveis, boxes arrastáveis e listas arrastáveis que trocam itens. ConceitosPara utilizar o ToolMan é necessario: (1º) criar uma variável tendo como valor a identificação do elemento que será arrastado (var nome_da_variável = document.getElementById(“id_da_div“)), (2º) digitar o comando para executar o TollMan, sendo seu valor a variável que foi criada (drag.createSimpleGroup(nome_da_variável_que_você_criou)) e caso queira, (3º) digitar o comando para limitação ou restrição, que pode ser: somente na vertical, horizontal ou entre diversas outras citadas abaixo. Pré-requisitoArquivos para os boxes: core.js (1k), events.js (1k), css.js (1k), coordinates.js (4k), drag.js (7k). ConteúdoBoxes arrastáveisPrimeiro inclua os arquivos; core.js, events.js, css.js, coordinates.js, drag.js dentro da tag HEAD. <script language=”JavaScript” type=”text/javascript” src=”../source/org/tool-man/core.js”></script> Crie uma função em Java Script para que ao carregar toda a pagina HTML execute o ToolMan. Dentro dessa função vamos carregar três variáveis do ToolMan <script language=”JavaScript”> Ainda dentro do código Java Script é necessário criar as variáveis de configuração dos boxes. Cada tipo de box requer um configuração, veja abaixo as disponíveis: Box Drag O Box Drag fica solto na tela podendo ser arrastado para qualquer lugar. Para utilizá-lo, crie uma variável tendo como valor a identificação do elemento (var boxDrag = document.getElementById(“id_da_div_boxDrag“)) nessa caso a variável vai se chamar boxdrag, digite o comando para executar o ToolMan e coloque como valor desse comando a variável que você criou, ficando assim: drag.createSimpleGroup(boxDrag) var boxDrag = document.getElementById(“id_da_div_boxDrag“) Agora é só criar uma DIV com o ID sendo igual ao informado na variável <div id=”id_da_div_boxDrag”> Box Vertical O Box Vertical pode se arrastado somente na vertical. Para utilizá-lo, crie uma variável (boxVerticalOnly) tendo como valor a identificação do elemento, digite o comando para executar o ToolMan, sendo seu valor a variável que foi criada, e informe a limitação group.verticalOnly(), ou seja, arrasta somente na vertical. var boxVerticalOnly = document.getElementById(“id_da_div_boxVertical“) Agora é só criar uma DIV com o ID sendo igual ao informado na variável <div id=”id_da_div_boxVertical”> Box Horizontal O Box Horizontal é o contrario do Box Vertical e poderá se arrastado somente na horizontal. Para utilizá-lo, crie uma variável (boxHorizontalOnly) sendo o seu valor a identificação do elemento, digite o comando para executar o ToolMan tendo como valor a variável que foi criada e informe a limitação group.horizontalOnly(), ou seja, arrastar somente na horizontal. var boxHorizontalOnly = document.getElementById(“id_da_div_boxHorizontal“) Crie uma DIV nome com o ID sendo igual ao informado na variável <div id=”id_da_div_boxHorizontal”> Box Handle O Box Handle é semelhante ao Box Drag mais para arrastá-lo é necessário definir uma área dentro do box, onde somente clicando nela será possível arrastá-lo. Crie uma variável (boxHandle) tendo como valor a identificação do elemento, digite o comando para executar o ToolMan tendo como valor a variável que foi criada e a identificação do elemento que será a área que vai arrastá-lo, separados pela virgula (,). var boxHandle = document.getElementById(“id_da_div_boxHandle“) Crie uma DIV nome com os IDs sendo igual ao informado na variável <div id=”id_da_div_boxHandle”> Box Region Constraint Nesse tipo de box é possível definir uma área limite para arrastar o box. Crie uma variável (boxRegionConstraint)com o valor sendo a identificação do elemento, e digite o comando para executar o ToolMan, sendo seu valor a variável que foi criada. var boxRegionConstraint = document.getElementById(“id_da_div_boxRegionConstraint“) Crie outra variável para delimitação das margim, insira em pixes dentro dos parênteses na primeira linha. var origin = coordinates.create(0, 0) Copie o cole essa variável para delimitação de qual lado poderá ser arrastado. var originalTopLeftOffset = Crie uma DIV nome com o ID sendo igual ao informado na variável. <div id=”id_da_div_boxRegionConstraint”> Box com posição fixa É possível criar um box com uma posição fixa que se movimente por uma linha na horizontal ou vertical. Crie uma variável tendo como valor a identificação do elemento, digite o comando para executar o ToolMan, sendo seu valor a variável que foi criada e informe como limitação que sua movimentação será somente na horizontal (group.horizontalOnly()) ou vertical (group.verticalOnly()) na terceira linha do código JS. var boxAbsolute = document.getElementById(“id_da_div_boxAbsolute”) Agora adicione o código abaixo, que fara o resto group.addTransform(function(coordinate, dragEvent) { return coordinate Crie uma DIV nome com o ID sendo igual ao informado na variável <div id=”id_da_div_boxAbsolute “> ListasLista auto-ordenáveis Agora aprenderemos a criar lista arrastáveis e auto-ordenáveis, ou seja, que se arrastam e se encaixam perfeitamente, e o melhor e que ele vai armazenar a seqüência de ordenamento em um cookie. Assim a eqüência será armazenada para visitas futuras do usuário. Para executar essa função é necessário incluir além dos que já foram incluídos anteriormente mais dois arquivos JS: dragsort.js e cookies.js. <script language=”JavaScript” type=”text/javascript” src=”dragsort.js”></script> Crie um bloco de código de Java Script e informe a identificação do UL e da LI da lista. Inicie criando as variáveis do ToolMan, só que agora para utilizar o Drag Sort. <script language=”JavaScript” type=”text/javascript”><!– Ainda dentro do bloco de código crie uma função para que ao carregar toda a pagina html execute o ToolMan Drag Sort. Dentro dessa função vamos carregar as variáveis necessárias. Coloque como valor dos comandos junkdrawer.restoreListOrder e dragsort.makeListSortable do ToolMan a indentificação do UL da lista conforme mostrado abaixo em negrito, para que a posição da lista seja gravada e possa se arrastada. window.onload = function() { } Agora digite essa função responsavel pelo armazenamento e ordenamento da lista function saveOrder(item) { E pronto. Listas auto-ordenáveis que podem ser trocados os itens entre si Baseado no ToolMan do Tim Taylor o Blog BeNLOG adaptou o script para que os itens das listas se auto-organizem e possam ser trocados de uma lista para outra. Para isso é necessário apenas três arquivos JS que foram atualizado para suporta essa função e pesam apenas 16Kb, e que também não é obstrutivo. <script language=”JavaScript” type=”text/javascript” src=”coordinates.js”></script> Iniciaremos criando um bloco de código de Java Script que inicie a função (window.onload) assim que a página for carregada. Crie uma variável (var list) e digite seu valor sendo a identificação da lista (document.getElementById(“id_da_lista”)) e escreva o comando para que seja criado a movimentação das listas (DragDrop.makeListContainer( list );) tendo como valor a variável que foi criada. É possível também executar dois eventos; um quando a lista inicia o arrastamento (list.onDragOver) e outro quando termina (list.onDragOut). Nesse exemplo vamos alterar o cor de fundo (function() { this.style["background"] = “#EEF”; }) quando o usuario for mover a lista. Faça o mesmo na outra lista, crie uma variável (list) e passe a indetificaçãoo da lista (document.getElementById(“id_da_lista2″);), execute o comando para que seja criado a movimentação das listas e adicione outros eventos. <script language=”JavaScript” type=”text/javascript”><!– list = document.getElementById(“id_da_lista2“); Considerações FinaisAutor: Marcelo Souza Ramos – Colunista Dreamweaver do Portal MXSTUDIO Qualquer dúvida envie um email para ramos.marcelosouza@gmail.com ou acesse o nosso fórum |
LINQUES QUEBRADOS!!!!
SEM ELES FICA DIFICIL…….
FALOWWWW
“Arquivos para os boxes: core.js (1k), events.js (1k), css.js (1k), coordinates.js (4k), drag.js (7k).
Arquivos para as listas: dragsort.js (2k), cookies.js (1k) mais os de cima
Arquivos para as listas que trocam os itens: coordinates.js (3k), drag.js (7k) e dragdrop.js (6k)”