您的位置:首页 > 其它

使用Hammer做一个类似于苹果手机多的AssistiveTouch一样的东西,可以随意拖动

2017-07-13 22:59 597 查看
首先先到GitHub上面下载该插件

导入对应的js文件。注:hammer是基于jQuery的,必须引入jQuery/zepto

<script src="jquery.min.js"></script>

<script src="hammer.js"></script>

html文件结构如下

<div id="circleDiv">拖动</div>

对应的css文件

#circleDiv{

    width: 3.6667rem;

    height:3.6667rem;

    line-height: 3.6667rem;

    text-align: center;

    background-color: #cc99cc;

    border-radius: 50%;

    position: fixed;

    bottom: 3.6667rem;

    left: 0;

}

想要更漂亮可以自己设计

相应的js文件如下

function panAction(){

var circleDiv = $("#circleDiv");

    var circleLeft = circleDiv.css("left").replace("px",'')-0;

    var circleBottom = circleDiv.css("bottom").replace("px",'')-0;

    var circleSize = circleDiv.css("width").replace("px",'')-0;

    var screenW = screen.availWidth;

    var screenH = screen.availHeight;

    var circle = document.getElementById("circleDiv");

    var mc1 = new Hammer.Manager(circle);

    var pan = new Hammer.Pan();//平移

    mc1.add(pan);

    mc1.on('panstart',function(e){

        circleLeft = circleDiv.css("left").replace("px",'')-0;

        circleBottom = circleDiv.css("bottom").replace("px",'')-0;

    });

    mc1.on('pan',function(e){

        circleDiv.css({"left":circleLeft+ e.deltaX,"bottom":circleBottom- e.deltaY});

    });

    mc1.on('panend',function(e){

        var circleY = circleDiv.offset().top

        var circleX = circleDiv.offset().left;

        circleX > (screenW-circleSize)/2 ? circleDiv.css('left',screenW-circleSize):circleDiv.css('left',0);

        if (circleY >= screenH-circleSize){

            circleDiv.css('bottom',0),

        }

        if(circleY < 0){

            circleDiv.css('bottom',screenH-circleSize);

        }

    });

}

这样一个粉圆在你的屏幕就可以随意拖动了。以上做了边界处理,若不需要可自行修改
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐