博主信息
博文 15
粉丝 0
评论 1
访问量 17825
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
js运动原理和拖拽原理
空城的博客
原创
1002人浏览过

在实际开发中,我们经常需要将页面元素进行运动和拖拽以获取更好的页面效果

1、运动原理:即改变盒子的offsetLeft属性来获得位置的改变,取得一个盒子的运动效果

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>js运动原理</title>
    <style>
        .ball1{
            width: 100px;
            height: 100px;
            background-color: aquamarine;
            border-radius: 50%; 
            position: absolute;
            top:50px;
            left:50px;
        }
    </style>
</head>
<body>
    <button>动起来</button>
    <button onclick="reset()">复位</button>
    <div class="ball1"></div>

    <script>
        var btn  = document.querySelector('button');
        var ball1 = document.getElementsByClassName('ball1')[0];
        var timer = null;
        btn.onclick = function(){
            clearInterval(timer);
            
            timer = setInterval(function() {
                
                if(ball1.offsetLeft < 500){
                    ball1.style.left = ball1.offsetLeft+5+'px';
                    
                }else{
                    clearInterval(timer); 
                }
               
            },100);
        }

        function reset() {
            clearInterval(timer);
            ball1.style.left = '50px';
        }
    </script>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

2、拖拽原理:分三个动作,选中   移动  放下

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>拖拽</title>
    <style>
        .ball2{
            width: 100px;
            height: 100px;
            background-color: aquamarine;
            border-radius: 50%; 
            position: absolute;
            top:100px;
            left:100px;
        }
       
    </style>
</head>
<body>
    <div class="ball2"></div>
</body>
<script>
    //onmousedown 选中  onmousemove 移动  onmouseup 放下
    var ball2 = document.getElementsByClassName('ball2')[0];
    //event.clientX 鼠标横轴 event.clientY鼠标纵轴
    ball2.onmousedown = function (event) {
        var x = event.clientX - ball2.offsetLeft;
        var y = event.clientY - ball2.offsetTop;
        document.onmousemove = function(event) {

            ball2.style.left = event.clientX - x +'px';
            ball2.style.top  = event.clientY - y +'px';
            
        }
        document.onmouseup  = function() {
            document.onmousemove = null;
        }
    }
</script>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例


批改状态:合格

老师批语:
本博文版权归博主所有,转载请注明地址!如有侵权、违法,请联系admin@php.cn举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
作者最新博文
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学