9

OK、これは私のマウスをフォローするのに完全にうまく機能します。

//
$(document).mousemove(function(e){
  $("#follower").css({
      'top': e.pageY + 'px';
      'left': e.pageX + 'px';
  });
});
//

そして、これはクリックしたポイントにマウスをアニメーション化するのに最適です

//
$(document).click(function(e){
  $("#follower").animate({
      top: e.pageY + 'px';
      left: e.pageX + 'px';
  }, 800);
});
//

しかし、私は個人的にこれが論理的に機能するべきだと感じています!ウェブスクリプターとしての私の観点から来ています。それでは、私の質問は、どうすればこれを機能させることができるかということです。#followerに、ダイナミックな遅れの感覚でマウスをフォローしてもらいたいです。

//
$(document).mousemove(function(e){
  $("#follower").animate({
      top: e.pageY + 'px';
      left: e.pageX + 'px';
  }, 800);
});
//
4

1 に答える 1

33

setIntervalとゼノンのパラドックスと呼ばれる方程式を使用するのはどうですか。

http://jsfiddle.net/88526/1/

それは私が通常それをする方法です。

要求に応じて、この回答にコードを含めました。絶対測位のdivが与えられた場合:

CSS:

#follower{
  position : absolute;
  background-color : red;
  color : white;
  padding : 10px;
}

HTML:

<div id="follower">Move your mouse</div>

JS w / jQuery:

var mouseX = 0, mouseY = 0;
$(document).mousemove(function(e){
   mouseX = e.pageX;
   mouseY = e.pageY; 
});

// cache the selector
var follower = $("#follower");
var xp = 0, yp = 0;
var loop = setInterval(function(){
    // change 12 to alter damping, higher is slower
    xp += (mouseX - xp) / 12;
    yp += (mouseY - yp) / 12;
    follower.css({left:xp, top:yp});

}, 30);
于 2011-01-31T05:26:00.323 に答える