原生JS代码封装(抛物线运动)
function parabola(ele, stop){ //y == a*x^2 + bx + c //原点 var centerpoint = { x : ele.offsetLeft, y : ele.offsetTop } //目标点的 相对坐标系位置 var target = { x : stop.offsetLeft - centerpoint.x, y : centerpoint.y - stop.offsetTop } //系数 var a = -0.0015; // b = (y - ax^2)/x b = (target.y - a*target.x*target.x)/target.x; var _x = 0; var t = setInterval(function(){ _x+=8; var _y = a*_x*_x + b*_x; ele.style.left = _x + centerpoint.x + "px"; ele.style.top = centerpoint.y - _y + "px"; if(_x >= target.x) { ele.style.left = stop.offsetLeft + "px"; ele.style.top = stop.offsetTop + "px"; clearInterval(t) } }, 20); }
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄

更多精彩