zoukankan      html  css  js  c++  java
  • 原生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);
        }
  • 相关阅读:
    js多图上传展示和删除
    简单的下拉加载和上拉加载
    js实现放大镜效果
    js表格拖拽
    js表格上下移动添加删除
    js写的滑动解锁
    关于serialize() FormData serializeArray()表单序列化
    js日历
    js树状菜单
    Restful API官方文档
  • 原文地址:https://www.cnblogs.com/sunyang-001/p/10813074.html
Copyright © 2011-2022 走看看