DIV可以在手机页面中实现随意拖动

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DIV可以在手机页面中实现随意拖动相关的知识,希望对你有一定的参考价值。

代码实现如下:


 <style>     
            #my_divposition:fixed;display:block;top:0;         
</style>  
<div id="my_div"></div>
<script type="text/javascript">
    $(function()
        var cont=$("#my_div");
        var contW=$("#my_div").width();
        var contH=$("#my_div").height();
        var startX,startY,sX,sY,moveX,moveY;
        var winW=$(window).width();
        var winH=$(window).height();

        cont.on( //绑定事件
            touchstart:function(e)
                startX = e.originalEvent.targetTouches[0].pageX;    //获取点击点的X坐标
                startY = e.originalEvent.targetTouches[0].pageY;    //获取点击点的Y坐标
                //console.log("startX="+startX+"************startY="+startY);
                sX=$(this).offset().left;//相对于当前窗口X轴的偏移量
                sY=$(this).offset().top;//相对于当前窗口Y轴的偏移量
                //console.log("sX="+sX+"***************sY="+sY);
                leftX=startX-sX;//鼠标所能移动的最左端是当前鼠标距div左边距的位置
                rightX=winW-contW+leftX;//鼠标所能移动的最右端是当前窗口距离减去鼠标距div最右端位置
                topY=startY-sY;//鼠标所能移动最上端是当前鼠标距div上边距的位置
                bottomY=winH-contH+topY;//鼠标所能移动最下端是当前窗口距离减去鼠标距div最下端位置
            ,
            touchmove:function(e)
                e.preventDefault();
                moveX=e.originalEvent.targetTouches[0].pageX;//移动过程中X轴的坐标
                moveY=e.originalEvent.targetTouches[0].pageY;//移动过程中Y轴的坐标
                //console.log("moveX="+moveX+"************moveY="+moveY);
                if(moveX<leftX)moveX=leftX;
                if(moveX>rightX)moveX=rightX;
                if(moveY<topY)moveY=topY;
                if(moveY>bottomY)moveY=bottomY;
                $(this).css(
                    "left":moveX+sX-startX,
                    "top":moveY+sY-startY,
                )
            
        )
    )
</script>

以上是关于DIV可以在手机页面中实现随意拖动的主要内容,如果未能解决你的问题,请参考以下文章

pscs6剪裁工具怎么样四个角随意拖动

如何让DIV固定在页面而不随着滚动条随意滚动

如何让DIV固定在页面而不随着滚动条随意滚动

如何让DIV固定在页面而不随着滚动条随意滚动

c# WINFORM窗体如何设置才可以不能随意拖动大小

如何使用 Rx 在 Angular 2 中实现可拖动的 div