>  기사  >  웹 프론트엔드  >  마우스 이동 방법에 따른 div의 jQuery 구현 설명

마우스 이동 방법에 따른 div의 jQuery 구현 설명

小云云
小云云원래의
2018-01-12 09:24:281734검색

이 글은 주로 마우스 움직임에 따라 p를 구현하는 jQuery를 소개합니다. 관심 있는 친구들이 참고하면 도움이 될 것입니다.

핵심은 현재 위치와 마우스 이동 후의 위치, 현재 위치와 p의 이동 후 위치를 얻는 방법을 알아내는 것입니다.

jQuery를 사용하여 마우스의 움직임에 따라 p가 이동한다는 것을 깨닫습니다. , 마우스 자체의 위치가 아닙니다! ! 하지만 이전 위치를 기준으로 p의 움직임은

코드는 다음과 같습니다. (녹색 부분의 설명에 주의)


<!DOCTYPE html>
<html>
  <head>
    <meta charset="{utf-8}">
    <title></title>
    <script src="../jquery-3.2.0.js"></script>
    <style>
      .aa{
        height: 100px;
        width: 200px;
        position: absolute;
        background-color: green;
      }
    </style>
  </head>
  <body>
    <p class="aa"></p>
  </body>
</html>
<script>
  $(".aa").mousedown(function(e){
    //设置移动后的默认位置
    var endx=0;
    var endy=0;

    //获取p的初始位置,要注意的是需要转整型,因为获取到值带px
    var left= parseInt($(".aa").css("left"));
    var top = parseInt($(".aa").css("top"));

    //获取鼠标按下时的坐标,区别于下面的es.pageX,es.pageY
    var downx=e.pageX;
    var downy=e.pageY;   //pageY的y要大写,必须大写!!

   //  鼠标按下时给p挂事件
  $(".aa").bind("mousemove",function(es){

    //es.pageX,es.pageY:获取鼠标移动后的坐标
    var endx= es.pageX-downx+left;   //计算p的最终位置
    var endy=es.pageY-downy+top;

    //带上单位
    $(".aa").css("left",endx+"px").css("top",endy+"px")  
  });  
 })
  

  $(".aa").mouseup(function(){
    //鼠标弹起时给p取消事件
    $(".aa").unbind("mousemove")
  })
  
</script>

은 다음 코드와 다릅니다. (최종 효과는 p가 이동한다는 것입니다. 마우스 위치에 따라 구체적인 효과를 보고 싶습니다. 붙여넣기, 복사 및 비교를 통해 차이점을 확인하세요.)


  <script>
$(".aa").mousedown(function(e){
  $(document).bind("mousemove",function(e){
    $(".aa").css("left",e.pageX).css("top",e.pageY)
  });
})
  $(".aa").mouseup(function(){
    $(document).unbind("mousemove")
  })
  </script>

관련 추천:

10 클래식 웹 마우스 효과 섹션 공유

jQuery 마우스 움직임 튜토리얼을 사용하여 사진 확대 효과

WeChat 애플릿에서 마우스 드래그 효과를 구현하는 방법

위 내용은 마우스 이동 방법에 따른 div의 jQuery 구현 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.