单击时JavaScript函数终止

问题描述 投票:-1回答:2

我在JavaScript中执行一个功能,使立方体跟随鼠标移动但我需要让它们回到原来的位置,当我将鼠标悬停在特定的div上时,只要鼠标位于该div内部就停止它们移动。如果我在该按钮内移动鼠标,那么立方体不会移动,而是在我离开按钮后返回移动移动。

function cubes() {
  $(document).on("mousemove", function(e) {
      $(".cube1").attr("style", "transform: translateX(" + ax + "px) 
        translateY("+ay+"
          px)
        ");
      });
  };

  $(".button").hover(function() {
    $(".cube1").css({
      "transforme": "translate(0)"
    })
  });
.button {
  width: 200px;
  height: 200px;
}
javascript jquery
2个回答
0
投票

您需要在mousemove上捕获.button事件,然后使用stopPropagation来防止事件将DOM冒泡到文档中。

function cubes() {
  $(document).on("mousemove", function(evnt) {
  
    let {clientX, clientY} = evnt;
      $(".cube1").css('transform', `translateX(${clientX}px) translateY(${clientY}px)`);
  });

  $(".button").on('mouseenter', function() {
    // when the mouse enters the button snap
    // cube1 back to its default position
    $(".cube1").css({
      "transform": "translate(0)"
    });
  });

  $(".button").on('mousemove', function(evnt) {
    // Capture the mousemove event on this element,
    // and stop propagation so the document does not receive
    // the mousemove event.
    evnt.stopPropagation();
  });
}

cubes();
    .button {
      width: 200px;
      height: 200px;
      background: #96bdd9;
    }
    .cube1 {
      height: 50px;
      width: 50px;
      background: #e1ecf4;
    }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div class="cube1">Cube</div>
    <div class="button">Button</div>

您现在可能熟悉的一些事情:

如果您需要支持旧浏览器,可以使用ES5重写这些内容。


-1
投票

我不知道这是一个答案,但你有一个小错字:

let
© www.soinside.com 2019 - 2024. All rights reserved.