实现向右移动动画

如果我们想要一个按钮,控制一个div向右移动的动画效果,该怎么实现呢?

有三种实现的方法,下面我们分别介绍三种方法

1.通过设定left

实现思路:通过改变left实现div的右移

实现案例请点击:https://jsbin.com/leduqolugi/edit?html,js,output

JS核心代码:

function startMove(){var n =0;var timer = setInterval(() => {if(n<=30){box.style.left = n/100*300 +'px';n++;}else{clearInterval(timer);}},100);
}

2.通过transform + transition

实现思路:使用transform属性里的translateX来完成移动,并且使用transition的过渡效果。

实现案例请点击:https://jsbin.com/tujigujemi/edit?html,css,js,output

CSS代码:

#box{width:100px;height:100px;background:red;transition:all 2s;
}
#box.move{transform:translateX(100px);
}

CSS核心代码有两行:

1.transition:all 2s; 让整个移动在2s内完成,transition的作用是给我开头和结尾,我来补充中间帧。

2.transform:translateX(100px);实现右移100px。

JS代码:

function startMove(){box.classList.add('move')
}

3.使用animation

实现案例请点击:https://jsbin.com/xefawusuku/edit?html,css,js,output

animation的核心就是定义关键帧, 其中move是这个动画的名字。

@keyframes move{0%{transform:translateX(0px);}100%{transform:translateX(100px)}
}

然后,写一个move类,指定让move运行2s。

#box.move{animation:move 2s;
}

然后,JS添加上这个类。

start.addEventListener('click',()=>{box.classList.add('move');
})

关于transition的总结

有些属性不能用transition,比如display:block变成display:none

当我们想做的动画效果是想让一个显示的div消失,可以有两种方法:

1.用Opacity,最开始设置opacity:1,点击按钮后设置opacity:0

但是,opacity后,这个元素仍然占有相应的空间,所以还应该用JS去掉这个元素,可以用的事件是transitionend

实现案例请点击:https://jsbin.com/tesusotira/edit?html,css,js,output

start.addEventListener('click',()=>{box.classList.add('end');
});
​
box.addEventListener('transitionend',()=>{box.remove();
});

2.还可以改用visibility:visible 改为 hidden

总结:可以用opacity : 1 -> 0 或者 visibility: visible -> hidden 替代 display: block -> none

关于animation的总结

1.animation组成部分:

<1>关键帧keyframes

<2>animation属性,animation: 动画名称(必需),执行一次所需时间(必需),动画在开始前的延迟时间,动画的运行速度轨迹(linear:匀速,默认ease:低速-加速-低速),动画的播放次数(infinite:无限循环)

2.稍微复杂一点的动画

实现案例请点击:https://jsbin.com/fetudazucu/edit?html,js,output

实现效果如下:

代码如下:

注意:animation-play-state 和 animationPlayState的书写方式

实现一颗跳动的爱心

实现案例请点击:https://jsbin.com/sivunicowa/edit?html,css,output

css帧动画点击执行一次_CSS动画深入浅出相关推荐

  1. 动画总结 Core Animation 贝赛尔曲线 显式动画 隐式动画

    Core Animation 接下来详细介绍下动画的各个属性及作用 fromValue: 动画的开始值(Any类型, 根据动画不同可以是CGPoint.NSNumber等) toValue: 动画的结 ...

  2. html鼠标点击伪类,CSS伪类:CSS3鼠标滑过按钮动画

    前言 按钮,对开发者而言,是非常常见的一个功能.前端通常会对按钮加入一些操作交互样式,增加一些用户体验. 比如:hover样式.点击样式.loading样式等.下面我们通过简单示例在学习一下css3动 ...

  3. CSS 帧动画 播放动画

    CSS3 帧动画 amimation @keyframes 在 CSS3 出现之前,动画都是通过 JavaScript 动态的改变元素的样式属性来完成了,这种方式虽然能够实现动画,但是在性能上存在一些 ...

  4. 六、CSS 速览 —— 平面转换、3D转换、动画

    平面转换.3D转换.动画 字体图标 iconfont 阿里图标库 从图标库引用素材 平面转换 transition: all 1s; 设置元素变换动画 transform: translate(px, ...

  5. css硬件加速_CSS动画的硬件加速简介

    css硬件加速 In the last couple of years we've often heard about hardware acceleration and how it helps t ...

  6. CSS 实现按钮点击动效的套路

    大厂技术  高级前端  Node进阶 点击上方 程序员成长指北,关注公众号 回复1,加入高级Node交流群 在 Web 中,大部分按钮可能都是平平无奇的,有时候为了强调品牌特殊或者满足特殊功能,可能需 ...

  7. Animate.css+wow.js实现页面滚动到可视区显示动画效果

    今天看迅雷官网 https://www.xunlei.com/v2018/dist/aboutus.html 实现的滚动到可视区域后显示动画,自己之前没做过这种,非常感兴趣,然后问小伙伴, 大部分都没 ...

  8. 解惑:如何使用html+css+js实现旋转相册,立方体相册等动画效果

    解惑:如何使用html+css+js实现旋转相册,立方体相册等动画效果 一.前言 最初还是在抖音上看到可以使用简单地代码实现炫酷的网页效果的,但是想要找到可以运行的代码还是比较困难的,最近突然想起就在 ...

  9. Activity切换动画---点击哪里从哪放大

    本篇文章已授权微信公众号 安卓巴士Android开发者门户 独家发布 emmmm,这次来梳理一下 Activity 切换动画的研究.首先,老规矩,看一下效果图: 效果图 这次要实现的动画效果就是类似于 ...

最新文章

  1. python批量读取dat文件_python编写Windows环境下批量修改文件名
  2. [ZPG TEST 109] 兔子跳跃【构图】
  3. NoMasp博客导读
  4. 浅谈android hook技术
  5. 三十三、五大数据处理的R包
  6. [转]软件保护之注册算法篇
  7. orcadcapture安装_OrCad Capture
  8. 虚拟机专用精简版win7系统_新手玩NAS:创建虚拟机,安装WIN10,实现迅雷下载和百度云...
  9. Docker 停止容器
  10. 人类的下一个走向:无用阶级
  11. 我逢人就吹的超好用Markdown编辑器-Typora
  12. 2019很艰难,2020会更好吗
  13. 将图片上传到FTP服务器
  14. 电商系统-优惠券部分设计
  15. 八一农垦大学计算机科学与技术专业好不好,黑龙江八一农垦大学最好的专业(什么专业最好)...
  16. Hessian/Burlap: is an unknown class in WebappClassLoader
  17. 进程(线程)间同步互斥问题(三) 熟睡的理发师问题
  18. 杂谈(主机名、ip地址、域名的区别)(16)
  19. Niagara内容示例 2.2 Dynamic Beam
  20. 仿美团app产品列表,用weui(bootstrap可去掉)写成

热门文章

  1. python中set函数_python中set()函数简介及实例解析
  2. linux gpart 用法,gpart 使用笔记
  3. layui 行变灰_layui table设置某一行的字体颜色方法
  4. ajax 前端报错,Django ajax 发送post请求 前端报错解决
  5. python学习课后练习题_python初步学习-练习题
  6. javascript表格可以输入数据_最火8套测量自动计算表格,输入数据直接得结果,效率提升80%...
  7. 大一计算机应用基础答案李小艳,13级幼师班期末考试计算机试题A卷
  8. ht1621b和单片机电平匹配_基于HT1621B段式液晶模块的驱动应用
  9. 测试色谱柱柱效的软件,高效液相色谱柱柱效测定
  10. JAVA移慎_java里面给对象赋值,慎用赋值符号(=) (转)