O exemplo neste artigo compartilha com você o código específico para realizar o efeito de arrastar do mouse em JavaScript para sua referência. O conteúdo específico é o seguinte
.
Acho que a dificuldade deste experimento é manter a posição relativa da caixa e do mouse inalterada. Como conseguir o efeito de arrastar pressionando e movendo o mouse
?
Precisamos usar três funções: onmousedown
, onmousemove
e onmouseup
, que representam respectivamente o pressionamento do mouse, o movimento do mouse e o levantamento do mouse.
Na função de retorno de chamada do pressionamento do mouse , precisamos obter a posição inicial do mouse por meio de clientX
e clientY
, e através de offsetLeft
e offsetTop
obtém a posição inicial da caixa e, em seguida, calcula a diferença entre a posição inicial do mouse e a posição inicial da caixa
na função de retorno de chamada do movimento do mouse , precisamos obter a posição atual de; a caixa com base na diferença entre a posição do mouse e a posição calculada anteriormente e, em seguida, altere seus valores esquerdo e superior, não se esqueça de definir a posição como absoluta (porque esqueci...)
Na função de retorno de chamada do mouse lift , precisamos limpar o movimento e o levantamento do mouse, definindo onmousemove
e onmouseup
como null. Também
preste atenção! ! !
Tanto a função de movimento do mouse quanto a função de elevação do mouse devem ser escritas na função de pressionar o mouse, porque precisamos projetar o comportamento subsequente após a ação de pressionar o mouse, e um ponto muito importante é:
a função de pressionar o mouse é p, e o mouse Mover e levantar o mouse estão no documento
porque não queremos dizer que o mouse se move em p, mas move a página inteira.
Os pontos principais são provavelmente estes:
<!DOCTYPE html>. <html> <cabeça> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="largura=largura do dispositivo, escala inicial=1,0"> <título>Documento</título> <estilo> #caixa{ largura: 100px; altura: 100px; cor de fundo: água-marinha; raio da borda: 14px; sombra da caixa: 2px 2px 6px rgba(0,0,0,.3); /* Os mocinhos querem se mover e mudar para a esquerda sem definir o posicionamento. . . */ posição: absoluta; } </estilo> </head> <corpo> <div id="caixa"></div> <roteiro> deixe box=document.getElementById("caixa"); box.onmousedown=function(evento){ deixe disx=event.clientX-box.offsetLeft; deixe disy=event.clientY-box.offsetTop; //Este não é box.onmousemove, mas document.onmousemove document.onmousemove=function(evento){ box.style.left=event.clientX-disx+'px'; box.style.top=event.clientY-disy+'px'; } //Para ser escrito em omniusedown document.onmouseup=function(){ //Ambos devem ser definidos como nulos document.onmousemove=null; document.onmouseup=nulo; retornar falso; } } </script> </body> </html>
Recomendações relacionadas: [Tutorial em vídeo JavaScript]
O conteúdo acima é o conteúdo detalhado de js para simular eventos de arrastar do mouse (com exemplos de imagens e textos. Para obter mais informações, preste atenção a outros artigos relacionados no site PHP chinês). !