抛物线运动JavaScript实现

html代码

<div id="goods"></div>

css代码

 * {
            margin: 0;
            padding: 0
        }

        #goods {
            width: 50px;
            height: 50px;
            background: red;
            position: absolute;
            right: 0;
            top: 200px;
        }

        div {
            width: 10px;
            height: 10px;
            background: #000;
            position: absolute;
        }

JS代码

/*
        y = a*x*x+b*x;
        y = -0.001*X*X+b*x
     */
    var goods = document.getElementById("goods");
    var iw = document.documentElement.clientWidth - goods.offsetWidth;
    document.onclick = function (e) {
        var e = e || event;
        var div = document.createElement("div");
        div.style.left = e.clientX + 'px';
        div.style.top = e.clientY + 'px';
        document.body.appendChild(div);

        /*
            如何求出 x  y  b
            原点真实坐标 (iw-50,200)
            原点虚拟坐标 (0,0)
         */

        var x = e.clientX - iw;
        var y = 200 - e.clientY;
        var b = (y + 0.001 * x * x) / x;

        div.timer = setInterval(function () {
            x += 5;
            y = -0.001 * x * x + b * x;
            if (x >= 0) {
                clearInterval(div.timer)
            }
            div.style.left = iw + x + 'px';
            div.style.top = 200 - y + 'px';
        }, 30)
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值