您现在的位置是:网站首页> 编程资料编程资料
用css3实现转换过渡和动画效果css3+jquery实现的手机app页面转换动画特效源码css实现鼠标放上去时图片过渡转换动画效果
2021-09-03
969人已围观
简介 这篇文章主要介绍了用css3实现转换过渡和动画效果,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
为什么要用css动画替换js动画
导致JavaScript效率低的两大原因:操作DOM和使用页面动画。
通常我们会通过频繁的操作 DOM的CSS来实现视觉上的动画效果,导致js效率低的两个因素都包括在内了在频繁的操作DOM和CSS时,浏览器会不停的执行重排和重绘,在PC版本的浏览器中,因为浏览器可用的内存比较大,用户肉眼几乎看不见页面动画产生的repaint和reflow,所以工程师几乎无需过多的考虑动画带来的性能问题,但在移动设备上可大有不同,移动设备分配给内置浏览器的内存可没有PC版本的浏览器内存可观,目前对CSS3支持最好的莫过于webkit浏览器了,在webkit内核的浏览器,一是safari其次是chrome.
用CSS3动画替代JS模拟动画的好处:
- 不占用JS主线程;
- 可以利用硬件加速;
- 浏览器可对动画做优化(元素不可见时不动画减少对FPS影响)
CSS3动画提供了2D和3D以及常规动画属性接口,它可以工作在页面的任何一个元素的任意一个属性,CSS3的动画是利用C语言编写的,它是系统层面的动画。
采用js动画还是css3动画,需要开发者根据不同的需求做出不同的抉择,但应该遵循一个基本的原则是:如果你需要做2D动画,请勿必使用CSS3的transition或animation
CSS3动画与javascript模拟动画有以下区别:
- CSS 3D动画在js中无法实现
- CSS3的3D动画是CSS3中非常强大的功能,因为它的工作原理是在一个三维的空间里,因此js是无法模拟出像CSS3那样的3D动画
- CSS 2D矩阵动画效率高于js利用margin和left,top模拟的矩阵动画
- CSS3的2D动画是指是2D矩阵Transform变化,js当然是不能做变形动画的。就拿坐标动画来说,使用CSS3的transform做translateXY动画比js中的position left,position right快了近700mm!而且视觉上也比js动画流畅很多。
- CSS3其它常规动画属性的效率均低于js模拟的动画
- 常规动画属性在这里是指:height,width,opacity,border-width,color
css3的属性
2D 转换
CSS3 转换可以可以对元素进行移动、缩放、转动、拉长或拉伸。
transform属性,适用于2D或3D转换的元素
transform-origin属性,设置转化元素位置
1.translate()方法,根据左(X轴)和顶部(Y轴)位置给定的参数,从当前元素位置移动。
div { transform: translate(50px,100px); -webkit-transform: translate(50px,100px); /* Safari and Chrome */ }2.rotate()方法,在一个给定度数顺时针旋转的元素。负值是允许的,这样是元素逆时针旋转。
div { transform: rotate(30deg); -webkit-transform: rotate(30deg); /* Safari and Chrome */ }3.scale()方法,该元素增加或减少的大小,取决于宽度(X轴)和高度(Y轴)的参数
div { -webkit-transform: scale(2,3); /* Safari / transform: scale(2,3); / 标准语法 */ }4.skew( [,])包含两个参数值,分别表示X轴和Y轴倾斜的角度,如果第二个参数为空,则默认为0,参数为负表示向相反方向倾斜。
div { transform: skew(30deg,20deg); -ms-transform: skew(30deg,20deg); /* IE 9 / -webkit-transform: skew(30deg,20deg); / Safari and Chrome */ }3D 转换
translate3d(x,y,z) 定义 3D 转化。 translateX(x) 定义 3D 转化,仅使用用于 X 轴的值。 translateY(y) 定义 3D 转化,仅使用用于 Y 轴的值。 translateZ(z) 定义 3D 转化,仅使用用于 Z 轴的值。 scale3d(x,y,z) 定义 3D 缩放转换。 scaleX(x) 定义 3D 缩放转换,通过给定一个 X 轴的值。 scaleY(y) 定义 3D 缩放转换,通过给定一个 Y 轴的值。 scaleZ(z) 定义 3D 缩放转换,通过给定一个 Z 轴的值。 rotate3d(x,y,z,angle) 定义 3D 旋转。 rotateX(angle) 定义沿 X 轴的 3D 旋转。 rotateY(angle) 定义沿 Y 轴的 3D 旋转。 rotateZ(angle) 定义沿 Z 轴的 3D 旋转。 perspective(n) 定义 3D 转换元素的透视视图。
CSS3 过渡
transition 简写属性,用于在一个属性中设置四个过渡属性。 transition-property 规定应用过渡的 CSS 属性的名称。 transition-duration 定义过渡效果花费的时间。默认是 0。transition-duration: 5s; transition-timing-function 规定过渡效果的时间曲线。默认是 "ease"。 linear 规定以相同速度开始至结束的过渡效果(等于 cubic-bezier(0,0,1,1))。 ease 规定慢速开始,然后变快,然后慢速结束的过渡效果(cubic-bezier(0.25,0.1,0.25,1))。 ease-in 规定以慢速开始的过渡效果(等于 cubic-bezier(0.42,0,1,1))。 ease-out 规定以慢速结束的过渡效果(等于 cubic-bezier(0,0,0.58,1))。 ease-in-out 规定以慢速开始和结束的过渡效果(等于 cubic-bezier(0.42,0,0.58,1))。 cubic-bezier(n,n,n,n) 在 cubic-bezier 函数中定义自己的值。可能的值是 0 至 1 之间的数值。 transition-delay 规定过渡效果何时开始。默认是 0。transition-delay: 2s;
CSS3 动画
@keyframes 规定动画。 animation 所有动画属性的简写属性,除了 animation-play-state 属性。 animation-name 规定 @keyframes 动画的名称。 animation-duration 规定动画完成一个周期所花费的秒或毫秒。默认是 0。 animation-timing-function 规定动画的速度曲线。默认是 "ease"。 animation-fill-mode 规定当动画不播放时(当动画完成时,或当动画有一个延迟未开始播放时),要应用到元素的样式。 animation-delay 规定动画何时开始。默认是 0。 animation-iteration-count 规定动画被播放的次数。默认是 1。 animation-direction 规定动画是否在下一周期逆向地播放。默认是 "normal"。 animation-play-state 规定动画是否正在运行或暂停。默认是 "running"。
总结
以上所述是小编给大家介绍的用css3实现转换过渡和动画效果,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
相关内容
- CSS 返回顶部代码示例css返回顶部图标固定在浏览器右下角且兼容ie6
- css实现抖音订阅按钮动画效果CSS3 水墨风格背景动画按钮基于CSS 属性实现按钮悬停边框和背景动画集合CSS实现菜单按钮动画
- CSS选择器中的正则表达式使用CSS3选择器新增问题的实现CSS 选择所有子元素添加样式的方法CSS3 新增选择器的实例一文教你玩转CSS 组合选择器
- 巧用CSS属性值正则匹配选择器(小技巧)css3的focus-within选择器的使用CSS选择器中的正则表达式使用css选择器四大类:基本、组合、属性、伪类css复杂选择器及css字体样式、颜色属性详解详解如何使用CSS3中的结构伪类选择器和伪元素选择器CSS3 新增选择器的实例css3 伪类选择器快速复习小结CSS 样式的使用方式、选择器 盘点CSS Selectors Level4中新增的选择器CSS 中的六个重要选择器(三秒就可以记住)
- 通过css动画实现一个表格滚动轮播效果CSS3制作轮播图的一种方法css实现带箭头和圆点的轮播纯HTML和CSS实现JD轮播图效果利用 CSS3 实现的无缝轮播功能代码HTML+CSS+JS实现堆叠轮播效果的示例代码
- CSS实现两栏布局,左边固定,右边自适应的4种方法两个div左边的固定宽度右边的自动填充的css
- 利用CSS3的3D效果制作正方体css3中transform属性实现的4种功能详解CSS3.0(Cascading Style Sheet) 层叠级联样式表纯CSS3实现div按照顺序出入效果CSS3实现列表无限滚动/轮播效果css3 利用transform-origin 实现圆点分布在大圆上布局及旋转特效CSS3实现的侧滑菜单CSS3实现的3D隧道效果用CSS3画一个爱心css3 实现文字闪烁效果的三种方式示例代码六种css3实现的边框过渡效果
- CSS实现带遮罩层可关闭的弹窗效果使用CSS content的attr实现鼠标悬浮提示(tooltip)效果CSS实现鼠标悬浮无限向下级展示的实例代码CSS鼠标悬浮DIV后显示DIV外的按钮解决方法CSS3制作了一个动画导航效果(鼠标悬浮会放大)css实现缕空遮罩层的示例代码css3遮罩层镂空效果的多种实现方法CSS实现鼠标移至图片上显示遮罩层效果CSS 鼠标悬浮在图片上添加遮罩层效果的实现
- css如何利用负margin技术实现平均布局css 布局 之 两端布局的实例代码 (利用父级负的margin)css布局之负margin妙用及其他实现CSS中使用负margin值来调整居中位置css利用负margin实现平均布局的示例
- css3媒体查询中device-width和width的区别详解Css深刻理解width:auto的用法让IE6支持兼容min-width、max-width CSS样式属性的方法CSS属性探秘系列(五):min-widthCSS中height和width在IE和其他浏览器中的区别图文详解css行内元素padding,margin,width,height没有变化CSS 透明背景时,记得给容器加上width宽度IE6不支持CSS中的min-width/height属性问题的解决方法
