• 移动端简单拖拽


      移动端拖拽需要通过 ontouchstartontouchmoveontouchendontouchcancel(本例中未使用)这四个事件实现。

      demo如下:

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>移动端拖拽</title>
        <style>
            * {
                padding: 0;
                margin: 0;
            }
            .container {
                margin: auto;
                height: calc(100vh - 2px);
                overflow: hidden;
                border: thin solid #000;
                position: relative;
            }
            .target {
                 200px;
                height: 200px;
                background: lightcoral;
                position: absolute;
            }
        </style>
    </head>
    <body>
    
    <div class="container">
        <div class="target"></div>
    </div>
    
    <script>
        window.onload = function(){
            var maxW = document.documentElement.clientWidth;
            var maxH = document.documentElement.clientHeight;
            document.querySelector('.container').style.width = maxW;
            var target = document.querySelector('.target');
            var startX = 0;
            var startY = 0;
    
            target.addEventListener('touchstart', function(e){
                startX = e.targetTouches[0].pageX - this.offsetLeft;
                startY = e.targetTouches[0].pageY - this.offsetTop;
            });
            target.addEventListener('touchmove', function(e){
                var leftX = e.targetTouches[0].pageX - startX;
                var topY = e.targetTouches[0].pageY - startY;
                var thisW = e.targetTouches[0].target.clientWidth;
                var parentW = e.targetTouches[0].target.offsetParent.clientWidth;
                var thisH = e.targetTouches[0].target.clientHeight;
                var parentH = e.targetTouches[0].target.offsetParent.clientHeight;
    
                if(leftX <= 0){
                    leftX = 0;
                }
    
                if(leftX >= parentW - thisW){
                    leftX = parentW - thisW;
                }
    
                if(topY <= 0){
                    topY = 0;
                }
    
                if(topY >= parentH - thisH){
                    topY = parentH - thisH;
                }
    
                this.style.left = leftX + 'px';
                this.style.top = topY + 'px';
                this.innerHTML = '我又被揪起来了,真烦人!';
            });
            target.addEventListener('touchend', function(e){
                this.innerHTML = '你终于放弃揪着我了,谢谢!';
            });
        };
    </script>
    
    </body>
    </html>
  • 相关阅读:
    PHP 命名空间
    使用 htaccess 重写 url,隐藏查询字符串
    HTML 长文本换行
    Mac OS X 上的Apache配置
    无法debug断点跟踪JDK源代码——missing line number attributes的解决方法
    根据多条件删除还能这样写
    wm_concat()函数
    spring 事务-使用@Transactional 注解(事务隔离级别)
    spring 中常用的两种事务配置方式以及事务的传播性、隔离级别
    oracle 中SQL 语句开发语法 SELECT INTO含义
  • 原文地址:https://www.cnblogs.com/SophiaLees/p/9546903.html
Copyright © 2020-2023  润新知