jquery回弹_jQuery 物体拖拉回弹的动效

JavaScript

语言:

JaveScriptBabelCoffeeScript

确定

$(document).ready(function() {

var $test = $(".test"),

xPos,

yPos;

$(document).on("mousedown", ".test", function(evt) {

$(this).addClass("active").removeClass("transitioned");

var realTop = parseInt($(this).offset().top, 10),

realLeft = parseInt($(this).offset().left, 10);

xPos = evt.pageX - realLeft;

yPos = evt.pageY - realTop;

$(document).on("mousemove", function(e) {

if ($test.hasClass("active")) {

var x = e.pageX,

y = e.pageY,

realX = x - xPos,

realY = y - yPos,

newX = realX - realLeft,

newY = realY - realTop;

$test.css("transform", "translateX(" + newX + "px) translateY(" + newY + "px)");

};

});

function mouseUpFunc(e) {

var x = e.pageX,

y = e.pageY,

realX = x - xPos,

realY = y - yPos,

newX = parseInt(Math.floor((0 - (realX - realLeft)) / 3), 10),

newY = parseInt(Math.floor((0 - (realY - realTop)) / 3), 10),

smallX = parseInt(Math.floor((realX - realLeft) / 5), 10),

smallY = parseInt(Math.floor((realY - realTop) / 5), 10),

dispX = parseInt(Math.floor((realX - realLeft) / 10), 10),

dispY = parseInt(Math.floor((realY - realTop) / 10), 10);

if ($test.hasClass("active")) {

$test.removeClass("active").addClass("transitioned");

if (newX || newY) {

$test.css("transform", "translateX(" + (newX - dispX) + "px) translateY(" + (newY - dispY) + "px)");

setTimeout(function() {

$test.css("transform", "translateX(" + (newX + dispX) + "px) translateY(" + (newY + dispY) + "px)");

}, 380);

setTimeout(function() {

$test.css("transform", "translateX(" + smallX + "px) translateY(" + smallY + "px)");

}, 420);

setTimeout(function() {

$test.css("transform", "translateZ(0)");

}, 700);

}

}

}

$(document).on("mouseup", function(e) {

mouseUpFunc(e);

});

return false;

});

});

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值