2011-01-31 36 views
9

OK, điều này hoạt động hoàn toàn tốt đẹp cho theo con chuột của tôi.làm thế nào để animate theo con chuột trong jquery

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

Và điều này làm việc tuyệt vời cho hoạt cảnh chuột đến một điểm nhấp

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

Nhưng cá nhân tôi cảm thấy rằng một cách logic này NÊN làm việc! Đến từ quan điểm của tôi như là webscripter. Amd thì câu hỏi của tôi là, làm cách nào tôi có thể thực hiện công việc này. Tôi muốn người #fower thử và theo con chuột của tôi với một loại động lực tụt hậu phía sau.

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

Trả lời

31

Làm thế nào về việc sử dụng setInterval và nghịch lý một phương trình gọi là Zeno:

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

Đó là cách tôi thường làm điều đó.

Theo yêu cầu, tôi đã đưa mã vào câu trả lời này. Cho một div với vị trí tuyệt đối:

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); 
+0

nhờ Zevan, Tôi sẽ thử ngay mà hiện nay. Nếu tôi gặp rắc rối với phương trình, tôi sẽ trở lại :) –

+0

Wow, bạn đã làm tất cả cho tôi. Bạn là người đàn ông. Nó có thể là tốt đẹp cho cộng đồng nếu câu trả lời này được đăng trực tiếp vào SO. Bạn có phiền nếu tôi chỉnh sửa câu trả lời của bạn để bao gồm điều này? –

+1

Chắc chắn tôi sẽ thêm mã ngay bây giờ. – Zevan

Các vấn đề liên quan