模仿苹果手机屏幕的虚拟键,可以在手机上随意拖动

自己在开发项目时,需要做一个可以在屏幕上随意拖动的按钮,类似苹果机的虚拟键,先看一下我做好的效果,如图:



效果就是那个“主页”按钮可以随意拖动,我是用原生js写的,代码如下:

        var homeBtn = document.getElementById("HomeBtn");
        var width = document.documentElement.clientWidth;
        var height = document.documentElement.clientHeight;
        homeBtn.addEventListener('touchmove', function (event) {
            event.preventDefault();
            if (event.targetTouches.length == 1) {
                var touch = event.targetTouches[0];
                moveleft = touch.pageX-22;
                movetop = touch.pageY-25;
                if(moveleft<0){moveleft=0;}
                if(moveleft>(width-43)){ moveleft = width - 43}
                if (movetop < 0) {movetop = 0;}
                if (movetop > (height-50)) { movetop = height - 50; }
                homeBtn.style.top = movetop+'px';
                homeBtn.style.left = moveleft + 'px';
            };
        }); 

大致思路:就是给按钮加上touchmove事件,每次拖动时计算出它的偏移量,计算好值范围,然后赋值上去就可以了。这个函数和我以前写的进度条效果是一样的,就是多了个值而已。具体的代码可以到我的GitHub上下载看看(在index.html页面上),觉得可以就给颗星星喽   https://github.com/leileibrother/slippage

注意:函数里面的数字不是随意写的!!!是要计算的!!!



猜你喜欢

转载自blog.csdn.net/leileibrother/article/details/79351478