使用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,里面是所调用的值,可以直接在里面修改,移动一次的距离,一共移动的距离

       

效果展示

微信图片_20220928224808.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);
            }


效果展示

微信图片_20220928224844.gif



相关文章
|
1月前
|
JavaScript 前端开发
如何使用时间切片来优化JavaScript动画的性能?
如何使用时间切片来优化JavaScript动画的性能?
|
1月前
|
JavaScript 前端开发
如何在不影响性能的前提下使用JavaScript库来实现复杂的动画效果?
如何在不影响性能的前提下使用JavaScript库来实现复杂的动画效果?
|
1月前
|
JavaScript 前端开发
CSS3 动画和 JavaScript 动画的性能比较
具体的性能表现还会受到许多因素的影响,如动画的复杂程度、浏览器的性能、设备的硬件条件等。在实际应用中,需要根据具体情况选择合适的动画技术。
|
1月前
ractive.js联系表单动画效果源码
一款ractive.js联系表单动画效果,很有创意的发送邮件、联系内容等表单,基于ractive.js实现的动画效果,以发送信件的方式。
25 1
|
1月前
|
JavaScript
js动画循环播放特效源码(上班族的一天)
js动画循环播放特效是一段实现了包含形象的卡通小人吃、睡、电脑工作的网页动画,js循环动画,简单的画面设计。非常丝滑有意思,欢迎对此代码感兴趣的朋友前来下载参考。
30 2
|
3月前
|
前端开发 数据可视化 开发者
D3.js 内置的动画函数
D3.js 内置的动画函数
|
3月前
|
JavaScript 前端开发
JS配合CSS3实现动画和拖动小星星小Demo
本文通过代码示例展示了如何使用JavaScript和CSS3实现动画效果和拖动小星星的交互效果,包括文字掉落动画和鼠标拖动产生小星星动画的实现方法。
58 0
|
2月前
|
前端开发 数据可视化 开发者
D3.js 内置的动画函数
D3.js 内置的动画函数
|
4月前
|
JavaScript 前端开发 UED
Vue.js动画魔法:解锁流畅过渡,让每一次交互都成为用户心中的小确幸!
【8月更文挑战第30天】在Vue.js中,动画与过渡效果不仅是视觉点缀,更是提升用户体验的关键。通过流畅的动态效果,应用的互动性和吸引力得以增强,从而提高用户满意度和参与度。`&lt;transition&gt;`和`&lt;transition-group&gt;`组件结合CSS过渡,可轻松实现元素的进入、离开及列表变化动画。合理的性能优化,如使用硬件加速,能避免页面卡顿,确保动画既美观又高效。下面是一个简单的淡入淡出效果示例,展示了如何利用Vue.js实现平滑的动画过渡。总之,恰当的动画设计能显著提升应用的用户体验。
65 0
Vue.js动画魔法:解锁流畅过渡,让每一次交互都成为用户心中的小确幸!
|
4月前
|
JavaScript 前端开发
动态背景,视觉盛宴:JavaScript动画让网页活起来!
动态背景,视觉盛宴:JavaScript动画让网页活起来!