• 移动端多个DIV简单拖拽功能


      移动端多个DIV简单拖拽功能。

      这个demo与之前写的一个例子差不了多少,只是这个多了一层遍历而已。

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>移动端多个DIV拖拽</title>
        <style>
            * {
                padding: 0;
                margin: 0;
            }
            .container {
                height: calc(100vh);
                overflow: hidden;
            }
            .container ul {
                 100%;
                height: 100%;
                position: relative;
            }
            .container li {
                list-style: none;
                 180px;
                height: 180px;
                background: #f00;
                position: absolute;
                top: 0;
                left: 0;
            }
        </style>
    </head>
    <body>
    
    <div class="container">
        <ul id="list">
            <li></li>
            <li></li>
            <li></li>
            <li></li>
            <li></li>
        </ul>
    </div>
    
    <script>
        window.onload = function(){
    
            var list = document.querySelector('#list');
            var lis = list.getElementsByTagName('li');
            var startX = 0, startY = 0;
    
            for(let i=0; i<lis.length; i++){
                var posL = i * 200;
                lis[i].style.left = posL + 'px';
            }
    
            for(let i=0; i<lis.length; i++){
                var that = this;
                lis[i].addEventListener('touchstart', function(e){
                    console.log(e);
                    startX = e.targetTouches[0].pageX - this.offsetLeft;
                    startY = e.targetTouches[0].pageY - this.offsetTop;
                });
    
                lis[i].addEventListener('touchmove', function(e){
                    console.log(e);
                    var leftX = e.targetTouches[0].pageX - startX;
                    var topY = e.targetTouches[0].pageY - startY;
                    var parentW = e.targetTouches[0].target.offsetParent.clientWidth;
                    var parentH = e.targetTouches[0].target.offsetParent.clientHeight;
                    var thisW = e.targetTouches[0].target.clientWidth;
                    var thisH = e.targetTouches[0].target.clientHeight;
                    var l = parentW - thisW;
                    var t = parentH - thisH;
    
                    if(leftX <= 0){
                        leftX = 0;
                    }
    
                    if(leftX >= l){
                        leftX = l;
                    }
    
                    if(topY <= 0){
                        topY = 0;
                    }
    
                    if(topY >= t){
                        topY = t;
                    }
    
                    this.style.left = leftX + 'px';
                    this.style.top = topY + 'px';
                });
            }
        };
    </script>
    
    </body>
    </html>
  • 相关阅读:
    工作计划
    bzoj3626:[LNOI2014]LCA
    bzoj3631:[JLOI2014]松鼠的新家
    bzoj3573: [Hnoi2014]米特运输
    bzoj4027,[HEOI2015]兔子与樱花
    bzoj3624,[Apio2008]免费道路
    bzoj2208连通数
    tyvj1153/洛谷P1262间谍网络
    Application server libraries not found && IntelliJ IDEA && tomcat
    debian9安装java8
  • 原文地址:https://www.cnblogs.com/SophiaLees/p/9547742.html
Copyright © 2020-2023  润新知