Decadeeeee 2020-08-06 13:00 采纳率: 100%
浏览 99
已采纳

js实现控件水平移动,为什么移不动呢?

图片说明

图片说明
图片说明
图片说明

代码:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>

        .scroll{
            overflow-x:scroll;
            position: absolute;
        }
        .scroll::-webkit-scrollbar{
            display: none;
        }
        .one{
            display: flex;
            position: relative;
            left: 1px;
        }
        .s{
            width: 404px;
            height: 240px;
            display: flex;
            margin:10px 10px 10px 0px;
            box-shadow:0px 0px 8px rgb(187, 182, 182);
            border-radius: 15px;
            background-color:aqua
        }
    </style>
</head>
<body>

    <div class="scroll">
        <div class="one">
            <div class="s" style="background-color:aqua"></div>
            <div class="s" style="background-color:rgb(19, 150, 84)"></div>
            <div class="s" style="background-color:rgb(255, 251, 0)"></div>
            <div class="s" style="background-color:rgb(17, 0, 255)"></div>
            <div class="s" style="background-color:rgb(255, 0, 212)"></div>
            <div class="s" style="background-color:rgb(255, 0, 34)"></div>
            <div class="s" style="background-color:rgb(204, 207, 212)"></div>
        </div>
    </div>

</body>
<script type="text/javascript">
    window.onload = function () {
        var one = document.getElementsByClassName("one")[0];
        var isMove = false;
        var startLeft;
        var startX;
        // mousedown鼠标事件:当用户点击鼠标在元素上就会触发该事件
        one.addEventListener('mousedown', function (e1) {
            // mousemove 鼠标事件:当鼠标指针在元素上移动就会触发此事件
            /**
             * e:指事件,在火狐浏览器中事件用window.event,所以只有把 event
             *    所以只有把event传给函数使用。为了兼容火狐和浏览器,一般会在函数里自动
             *    重新赋值: e = e || window.event;
            */
            // startLeft= one.style.offsetLeft;
            isMove = true;
            document.addEventListener('mousemove', function (e) {
                    if(isMove)
                    one.style.left  =parseInt(one.style.left) +(e.clientX - e1.clientX) + 'px';
                });
        });
        one.addEventListener('mouseup',function(){
            isMove=false;
        });

        one.addEventListener('mouseout',function(){
            isMove=false;
        })
    }
</script>
</html>
  • 写回答

1条回答 默认 最新

  • jingluan666 2020-08-06 14:07
    关注

    mousemove为什么要写在mousedown的里面?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 kali环境运行volatility分析android内存文件,缺profile
  • ¥15 写uniapp时遇到的问题
  • ¥15 vs 2008 安装遇到问题
  • ¥15 matlab有限元法求解梁带有若干弹簧质量系统的固有频率
  • ¥15 找一个网络防御专家,外包的
  • ¥100 能不能让两张不同的图片md5值一样,(有尝)
  • ¥15 informer代码训练自己的数据集,改参数怎么改
  • ¥15 请看一下,学校实验要求,我需要具体代码
  • ¥50 pc微信3.6.0.18不能登陆 有偿解决问题
  • ¥20 MATLAB绘制两隐函数曲面的交线