Posted 24 January 2004 - 12:40 AM
Aí galera...
Criei o seguinte conjunto de funções para dar um efeito de drag-n-drop em um layer. Quem quiser utilizá-lo, tá aí. Só nao esqueçam de colocar meu nome nos créditos.

O seguinte: só testei no IE 5.0, por isso nao sei se vai funcionar bem em outros navegadores. Se alguém puder fazer os testes pra verificar se dá algum erro, eu agradeço.
Quem quiser contribuir melhorando esse conjunto de funçoes é bem vindo.
| CODE |
/**************************************************** Drag-n-Drop 1.0 24/01/2004 by Micox-naironjcg@hotmail.com ****************************************************/ function move(){ var pos_alvo_y,pos_nova_y,pos_alvo_x,pos_nova_x; pos_alvo_y = document.all[quem_movimenta_mico_editor].style.top pos_alvo_y = pos_alvo_y.substr(0,pos_alvo_y.indexOf("px"))*1 pos_nova_y = pos_alvo_y + (event.clientY-pos_antiga_y) document.all[quem_movimenta_mico_editor].style.top = pos_nova_y pos_antiga_y = event.clientY pos_alvo_x = document.all[quem_movimenta_mico_editor].style.left pos_alvo_x = pos_alvo_x.substr(0,pos_alvo_x.indexOf("px"))*1 pos_nova_x = pos_alvo_x + (event.clientX-pos_antiga_x) document.all[quem_movimenta_mico_editor].style.left = pos_nova_x pos_antiga_x = event.clientX document.selection.empty() } function startDrag(quem){ var quem //variave global quem_movimenta_mico_editor; pos_inicial_mico_ed quem_movimenta_mico_editor = quem pos_antiga_x = event.clientX; pos_antiga_y = event.clientY; document.onmousemove = move document.onmouseup = endDrag } function endDrag(){ document.onmousemove="" document.onmouseup="" delete pos_antiga_x,pos_antiga_y }
|
Para utilizar basta chamar chamar a funçao startDrag através de qualquer imagem, botao, layer (de preferencia no proprio layer que vai mexer) passando como parametro o nome do layer alvo, que pode ser qualquer um (lembre-se de definir o style left e top do layer alvo).
Ex:
| CODE |
<td bgcolor="#444444" onMouseOver="this.bgColor='#000066';status='Mover'" onMouseOut="this.bgColor='#444444';status=defaultStatus" onMouseDown="startDrag('MicoxBar1')" onMouseUp="endDrag()"></td>
|
Caso de erros, me avise informando o tipo de erro e o navegador utilizado.
Espero ter ajudado.