【CSS3】CSS3新特性——2D转换

news/2024/6/19 6:22:21 标签: css, css3, html, css3新特性, 动画

什么是转换(transform)

转换可以理解为变形,可以实现元素的移动(translate)、旋转(rotate)、缩放(scale)等效果
 

移动translate

html" title=css>css">transform: translate(x,y);		/*总写*/
transform: translateX(n);
transform: translateY(n);		/*分开写也行*/
  1. 作用:改变元素在页面中的位置,类似定位
  2. translate最大的优点:不会影响其他元素的位置
  3. 百分比写法是自身元素的百分比:translate:(50%, 50%);
  4. 对行内标签无效

 
旋转rotate

html" title=css>css">transform: rotate(度数);
  1. 度数的单位是deg(度)
  2. 正值表示顺时针负值表示逆时针
  3. 默认旋转中心是元素的中心点

 
缩放scale

html" title=css>css">transform: scale(x, y);
  1. x和y用逗号隔开而不是空格
  2. transform: scale(0.5);等价于transform: scale(0.5, 0.5);
  3. scale缩放的最大优势:不影响其他元素可以设置中心点
     

变换中心transform-origin

html" title=css>css">tansform-origin: x y;		/* 2D转换中心点 */
  1. x和y参数之间用空格隔开
  2. 默认中心点当然是(50% 50%)
  3. x和y也可以是方位名词top bottom left right center
     

综合性写法(连写)

html" title=css>css">transform: translate() rolate() scale()...
  1. 空格隔开
  2. 顺序会影响转换的效果。比如先旋转会改变坐标轴方向
  3. 当同时有位移(translate)和其他属性的时候,记得将位移放在最前面
     

 

 

什么是动画(animation)

可通过多个节点来精确控制一个或一组动画,相较于过渡,变化效果更多
 

基本使用
 

  1. 用keyframe(关键帧)定义动画@keyframes+名字+自定义动序列)
  2. 调用动画animation-name + animation-duration,即名字+持续时间)(必须写的属性)

另: 关于动画序列,from/to等价于 0% / 100%
 

动画属性

animation-timing-function动画的速度曲线ease(默认),linear
animation-delay动画延迟多少后开始0(默认)
animation-iteration-count动画播放次数1(默认),infinite(无限)…
animation-direction动画下一周期是否反方向normal(默认),alternate(逆播放)…
animation-fill-mode动画结束后的状态backwards(默认跳回原处),forwards(保持位置)…
animation-play-state动画的运行or暂停running(默认),paused

连写:动画名称 持续时间 运动曲线 何时开始 播放次数 是否反方向 结束的状态( animation-play-state 不在连写之中)

即:animation: name duration timing-function delay iteration-count direction fill-mode;
 

补充知识——关于速度曲线

上面提到过 animation-timing-function 的默认值是ease,还可以取linear;其实还有:

ease加快,在结束前变慢
ease-in动画以低速开始,加快
ease-out动画以低速结束,减慢
ease-in-out开始和结束低速,中间快
steps()指定了时间函数中的间隔数量(步长)

steps()就是分几步完成动画;有了steps就不要再写ease和linear了

 

 

 
一个案例
在这里插入图片描述

html" title=css>css">/* 基本思路是: */
/* 1.精灵图当做一个div盒子的背景,精灵图的background-position分步进行移动————hana的贴图摇动 */
/* 2.div设置为绝对定位(由于没有有定位的祖先,因此以浏览器为基准),利用left做一个动画————hana的移动 */
        
div {
    position: absolute;
    width: 200px;
    height: 200px;
    background: url(hana.png) no-repeat;
    /* 元素可以添加多个动画,用逗号隔开 */
    animation: hana 1.5s steps(7) infinite, move 4s forwards;
    /* infinite用于让hana一直摇动;forward让hana走到中间后保持位置 */
    }
        
@keyframes hana {
	0% {
        background-position: 0 0;
    }
    100% {
        background-position: -1400px 0;
        /* 注意给background-position负值 */
    }
}
        
@keyframes move {
    0% {
         left: -200px;
     }
     100% {
         left: 50%;
         transform: translateX(-50%);
         /* 这样就行居中的修正,省去了计算 */
     }
}

 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

☀ 注

文章案例改编自《黑马程序员-web前端

&Lolisaikou


http://www.niftyadmin.cn/n/1330638.html

相关文章

大部分火灾因它而起,我们应该如何避免

据统计在引发的火灾中,电气火灾时比较多的,那么我们在今后的生活工作中应该如何预防和处理该类火灾? 一、电气火灾的特点 1、电气火灾的季节性特点 电气火灾多发生在夏、冬季。 夏季因为周围环境温度高,对电气设备的发热程度有…

leetcode 859. Buddy Strings(同伴字符串)

给出字符串s 和 goal, 判断交换 s 中的一对字母是否能得到goal. 必须是不同位置字母的交换。 思路&#xff1a; 先考虑边界情况&#xff0c; s 和 goal 的长度不相等时&#xff0c;s 怎么交换都不会得到goal. s 的长度 < 2时&#xff0c;没有可交换对象&#xff0c;肯定是…

JAVA8接口中的default、static方法使用注意事项

JAVA8中接口interface引入方法实现的猜想

城市路边停车系统合理分配道路资源

城市路边停车是很早之前就存在的问题&#xff0c;而停车系统是近十年才发展起来的模式&#xff0c;城市路边停车管理系统可对城市的道路、交通、停车进行统一的规划、优化和管理&#xff0c;充分挖掘城市停车资源&#xff0c;特别是科学合理拓展路边占道停车资源&#xff0c;并…

你知道是谁在使用物联网吗

物联网僵尸一个颠覆的行业&#xff0c;将事物连接到网络有许多惊人的好处。我们所有人都在智能手机和电脑等应用场景中看到了这些好处。而物联网其实是一个非常简单的概念&#xff0c;简单理解就是将世界万物连接到网络中。 预计到2025年&#xff0c;物联网设备数量将达到745亿…

物联网技术下的光明更智能

人离开房间&#xff0c;房间的灯会自动关闭。有人进入房间&#xff0c;房间的灯会自动打开&#xff0c;当然也会区分时段&#xff0c;比如在深夜卧室&#xff0c;人在房间的时候&#xff0c;房间的灯就不会自动打开&#xff0c;用户也可以通过语音进行控制。最近一些试点上线的…

【CSS3】CSS3新特性——3D转换

▊ 透视&#xff08;perspective&#xff09; 视距是眼睛到屏幕的距离——近大远小透视写在被观察元素的父盒子上z是物体到屏幕的距离&#xff08;z可以是负值&#xff09;通常都是给父盒子加perspective固定视角&#xff0c;然后修改子元素的translateZ ▊ 3D移动&#xff…

北京顺义上线无线地磁系统

北京顺义区也上线了无线地磁系统&#xff0c;可对各个时段交通状态进行分析&#xff0c;助力缓解该区域交通拥堵问题&#xff0c;目前该项目已经完工。 地磁检测器的安装方式是&#xff1a;在所需要检测的道路上钻孔&#xff0c;然后将地磁检测器放置其中&#xff0c;通过灌注…