【问题标题】:Change text on cursor position更改光标位置上的文本
【发布时间】:2017-08-10 09:25:33
【问题描述】:

我正在尝试根据光标位置更改文本。 它正在工作,但变化敏感度很快。 所以我想知道是否有办法调整这一点,改变不是那么快。

var text = ['Orange', 'Banana', 'Strawberry', 'Melon']
$(document).mousemove(function(event) {
  var randomItem = text[Math.floor(Math.random() * text.length)];
  var div = $("#message");

  div.stop().animate({
    "opacity": "1"
  }, 1, function() {
    $(this).text(randomItem);
    $(this).stop().animate({
      "opacity": "1"
    }, 1);
  });
});
#message { font-size: 54px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="message">Move the mouse.</div>

http://jsfiddle.net/2raaa/23/

【问题讨论】:

    标签: jquery position mousemove onmousemove


    【解决方案1】:

    我相信您可以制定更好的解决方案。在您的情况下,您只关注鼠标移动,因为您想提高灵敏度,您可以观察鼠标的实际位置:

    var text = ['Orange', 'Banana', 'Strawberry', 'Melon']
    var pos = {x: 0, y:0};
    $(document).mousemove(function(event) {
      var randomItem = text[Math.floor(Math.random() * text.length)];
      var div = $("#message");
      if (event.pageX > pos.x+30 || event.pageY > pos.y+30 || event.pageY < pos.y -30 || event.pageX < pos.x-30) {
        pos.x = event.pageX;
        pos.y = event.pageY;
        div.stop().animate({
          "opacity": "1"
        }, 1, function() {
          $(this).text(randomItem);
          $(this).stop().animate({
            "opacity": "1"
          }, 1);
        });
      }
    });
    #message { font-size: 54px; }
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <div id="message">Move the mouse.</div>

    【讨论】:

    • NNICE。这正是我一直在寻找的。谢谢伊丹 :)
    【解决方案2】:

    您必须更改 jquery 动画的持续时间属性。

    这是一个可以工作的插件:

    var text = ['Orange', 'Banana', 'Strawberry', 'Melon']
    $(document).mousemove(function(event) {
      var randomItem = text[Math.floor(Math.random() * text.length)];
    
      var div = $("#message");
      div.stop().animate({
        "opacity": "1"
      }, 50, function() {
        $(this).text(randomItem);
        $(this).stop().animate({
          "opacity": "1"
        }, 1);
      });
    
    });
    

    http://jsfiddle.net/2raaa/27/

    【讨论】:

    • 感谢您的快速回答 HellYeah。这个我也试过了,但是效果不好,感觉不像是基于鼠标移动的,因为有时候你停止移动的时候它还在变化。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多