使用JavaScript 实现简单的移动和缓动的动画效果

简介: 学习JavaScript 实现简单的移动和缓动的动画效果。

目录


一、H5的简单布局


二、css的布局


三、获取元素


四、使用js来实现‘盒子’移动


效果展示


五、使用js来实现缓动效果


效果展示


六、完整代码评论区自取


一、H5的简单布局

<div class="box box1"></div>
  <div class="box box2"></div>


二、css的布局

简易的布局出两个不同颜色的‘盒子’。

<style type="text/css">
    *{
    padding:0px;
    margin:0px;
    }
   .box{
    width: 200px;
    height: 200px;
    background: blue;
    position: absolute;
    left:0px
   }
   .box2{
    background: red;
    margin-top: 210px;
   }
   </style>


三、获取元素

var box1 = document.querySelector('.box1');
  var box2 = document.querySelector('.box2');


四、使用js来实现‘盒子’移动


可以使用函数封装,来实现,修改调用,不需要在代码中修改,可以减少出错的几率。

function myRun(box,h1,h2){  //封装函数
var myInter = setInterval(function(){
var offsetLeft = box.offsetLeft;
var num = h1;     //每次都移动h1个像素
var target = h2;  //一共移动的距离
if(offsetLeft==target){  //通过if来判断,到达了设定距离,就会删除间隔函数
  clearInterval(myInter);
  }else{
  box.style.left = offsetLeft+num+'px';//没有达到距离,一直赋值给‘盒子’左边距
    }
  },1000)}
    box1.onclick=function(){
    myRun(this,50,200); } //给‘盒子’设计点击事件,点击才会出现移动,this指向box1,里面是所调用的值,可以直接在里面修改,移动一次的距离,一共移动的距离


         

效果展示

微信图片_20220926230553.gif


五、使用js来实现缓动效果

依旧可以使用函数来封装,达到简洁的效果


大致代码与js移动相同,中间判断与上文稍微有些不同,其中的含义是,第一次移动取移动距离的十分之一,接下来的每一次移动,都是取省下来还剩多少距离的十分之一,取整是为了,在无线接近于所设置的距离可以移动。

function move(obj,sum){
                var liLi = setInterval(function(){
                    var offsetLeft =obj.offsetLeft;
                    var num  = (sum - offsetLeft)/10;
                    num > 0 ?  Math.ceil(num):Math.floor(num);
                    if(offsetLeft==sum){
                        clearInterval(liLi);
                    }else{
                        obj.style.left = offsetLeft+num+'px';
                    }
                },1000)
             }   box2.onclick=function(){
                    move(this,200);
            }


效果展示

微信图片_20220926230611.gif



相关文章
|
测试技术 程序员 C++
iOS:项目中无用类检测和无用图片检测汇总
在涉及到项目大改版,或者涉及到某个功能模块大变更,就会涉及到图片废弃和文件废弃的情况。 但是这时候就会遗留下一个很大的问题,没有将废弃的、无用的文件类或资源删除干净。而这次需要对工程代码的无用资源和无用文件进行删除处理,感触颇多,故在此笔记。 首先,感觉很多人的代码习惯还是恶待提高。比如我发现一些人的代码操作习惯,从好到次,可以大略分以下情况
1594 0
iOS:项目中无用类检测和无用图片检测汇总
|
API Swift C语言
探索iOS开发:Swift中的异步编程与GCD应用
【8月更文挑战第4天】在iOS开发的海洋中,掌握Swift语言的航向是至关重要的。本文将引领你深入理解Swift中的异步编程概念,并借助Grand Central Dispatch(GCD)这一强大的工具,来简化并发编程的复杂性。我们将通过实际代码示例,展现如何在iOS应用中高效地管理后台任务和提升用户界面的响应性。
253 3
|
JavaScript 前端开发
JS配合CSS3实现动画和拖动小星星小Demo
本文通过代码示例展示了如何使用JavaScript和CSS3实现动画效果和拖动小星星的交互效果,包括文字掉落动画和鼠标拖动产生小星星动画的实现方法。
218 0
JS配合CSS3实现动画和拖动小星星小Demo
|
JavaScript
Vue 监听输入框(input、textarea ...)粘贴事件获取图片、视频、文件、文件夹
Vue 监听输入框(input、textarea ...)粘贴事件获取图片、视频、文件、文件夹
1316 0
|
5天前
|
云安全 人工智能 安全
AI被攻击怎么办?
阿里云提供 AI 全栈安全能力,其中对网络攻击的主动识别、智能阻断与快速响应构成其核心防线,依托原生安全防护为客户筑牢免疫屏障。
|
15天前
|
域名解析 人工智能
【实操攻略】手把手教学,免费领取.CN域名
即日起至2025年12月31日,购买万小智AI建站或云·企业官网,每单可免费领1个.CN域名首年!跟我了解领取攻略吧~
|
9天前
|
安全 Java Android开发
深度解析 Android 崩溃捕获原理及从崩溃到归因的闭环实践
崩溃堆栈全是 a.b.c?Native 错误查不到行号?本文详解 Android 崩溃采集全链路原理,教你如何把“天书”变“说明书”。RUM SDK 已支持一键接入。
589 212
|
4天前
|
编解码 Linux 数据安全/隐私保护
教程分享免费视频压缩软件,免费视频压缩,视频压缩免费,附压缩方法及学习教程
教程分享免费视频压缩软件,免费视频压缩,视频压缩免费,附压缩方法及学习教程
233 138