Javascript用惯性移动DIV

时间:2016-02-12 23:18:24

标签: javascript inertia

我有一个代码,我可以用鼠标移动一个对象:

<html>
<head>
    <style>
    #container {
        position:absolute;
        width: 60px;
        height: 40px;
        top:50px;
        left:50px;
        background-color:green;
    }
    </style>
    <script>
        mydragg = function(){
                return {
                    startMoving : function(divid, evt) {
                        evt = evt || window.event;
                        var diffX = evt.clientX - divid.offsetLeft,
                            diffY = evt.clientY - divid.offsetTop;

                        document.onmousemove = function(evt) {
                            evt = evt || window.event;
                            divid.style.left = evt.clientX - diffX + 'px';
                            divid.style.top  = evt.clientY - diffY + 'px';
                        }
                    },
                    stopMoving : function() {
                        document.onmousemove = null;
                    },
                }
        }();
    </script>
</head>
<body>
    <div id='container' onmousedown='mydragg.startMoving(this, event);' onmouseup='mydragg.stopMoving();'></div>
</body>
</html>

它有效,但我需要更多 - 惯性 - 当我做&#34; mouseup&#34;根据之前的运动速度,DIV必须继续移动一点。一个例子可能是Google地图 - 您可以使用惯性移动地图。

我需要与纯JavaScript函数相同(没有jQuery,没有interact.js或者其他3&#39;部分就是这样)。

如果可以 - 您可以修改要使用的代码&#34;转换&#34;而不是&#34; style.left / top&#34;,因为性能和外观是最重要的。

你能帮助添加惯性代码吗?

0 个答案:

没有答案