CSS属性之过渡(transition)属性

定义

过渡transition是个复合属性,它包括了transition-propertytransition-durationtransition-timing-functiontransition-delay这四个属性,配合这四个属性完成一个完整的过渡动画效果。


transition-property: 过渡属性,指定属性的name、transition效果(默认值为all)

transition-duration: 过渡效果需要多久时间完成,指定完成过渡的时间。(单位:s/ms)

transition-timing-function: 指定完成过渡的曲线。(是匀速还是非匀速)

transition-delay: 指定延迟时间。(延迟多久后开始执行)


缩写形式:transition: transition-property transition-duration transition-timing-function transition-delay;

<!DOCTYPE html>
<html lang="zh">
  <head>
    <meta charset="utf-8">
	<title>过渡属性</title>
	<style>
	  
	  #trans {
	    width: 50px;
		height: 100px;
		border: 1px solid red;
		background-color: blue;
		
		-webkit-transition-property: width;
		transition-property: width;
		
		-webkit-transition-duration: 2s;
		transition-duration: 2s;
		
		-webkit-transition-timing-function: ease;
		transition-timing-function: ease;
		
		-webkit-transition-delay: 2s;
		transition-delay: 2s;
	  }
	  #trans:hover {
	    width: 400px;
	  }
	  
	</style>
  </head>
  <body>
    
	<div id="trans">
	  过渡
	</div>

	 
  </body>
</html>

效果如下:



在transition的这四个属性中,只有transition-duration是必需且不能为0的,transition-duration与transition-delay都表示时间,当这两个放在一起的时候,第一个是transition-duration,第二个是transition-delay,当只有一个时,表示的是transition-duration,transition-delay默认值是0。


当有两个时间时:

#trans {
	    width: 50px;
		height: 100px;
		border: 1px solid red;
		background-color: blue;
		
		transition: 1s 1s; /* 当只有两个时间时 */
	  }

效果如下:




当只有一个时间时:

#trans {
	    width: 50px;
		height: 100px;
		border: 1px solid red;
		background-color: blue;
		
		transition: 1s; /* 当只有一个时间时 */
	  }

效果如下:




注:transition的这四个属性不能用逗号隔开,能用逗号隔开的是不同的属性(transition能有多个不同的属性),如:width,height,background-color,用空格隔开的是不同属性的四个子属性。




transition-property(过渡属性name)


不是所有的CSS属性能有过渡属性,只有具备中间值的属性有过渡效果。


常见有过渡效果的css属性有:

颜色:color background-color border-color outline-color

位置:background-position top right bottom left

长度:max-height max-width height width min-height min-width

border-width margin padding outline-width

font-size line-height text-indent vertical-align

letter-spacing word-spacing

数值:opacity font-weight z-index

组合:transform text-shadow box-shadow clip




transition-duration属性


transition-duration属性指定过渡持续时间,过渡所需时间。单位是s或者ms


该值必须有且不能为负值,默认值是0s,0表示无效值。所以必需带单位。

当时间值为单值时,表示 所有的过渡属性 都 对应同样时间,当时间是多值时,过渡属性 按照顺序 对应持续时间。




transition-delay属性


transition-delay属性指定延迟多少时间后开始过渡效果,同样必需带单位,单位是s或者ms



不带单位为无效值。若为负值,则无延迟效果。

当为单值时,表示 所有的过渡属性 都 对应同样时间,当时间是多值时,过渡属性 按照顺序 对应持续时间。




transition-timing-function属性


该属性指定过渡速度。


linear:以匀速过渡。

ease:慢速开始,中间快速,以慢速结束。

ease-in:慢速开始。

ease-out:慢速结束。

ease-in-out:以慢速开始和结束。


<!DOCTYPE html>
<html lang="zh">
  <head>
    <meta charset="utf-8">
	<title>过渡属性</title>
	<style>
	  
	  div {
	    width: 100px;
		height: 50px;
		font-weight: bold;
		background-color: red;
		color: white;
		transition: width 1s;
	  }
	  .div1 {transition-timing-function: linear;}
	  .div2 {transition-timing-function: ease;}
	  .div3 {transition-timing-function: ease-in;}
	  .div4 {transition-timing-function: ease-out;}
	  .div5 {transition-timing-function: ease-in-out;}
	  div:hover {
	    width: 300px;
	  }
	  
	</style>
  </head>
  <body>
    
	<div class="div1">linear</div>
	<div class="div21">ease</div>
	<div class="div3">ease-in</div>
	<div class="div4">ease-out</div>
	<div class="div5">ease-in-out</div>

	 
  </body>
</html>


效果如下:





多值


transition的属性值用 逗号隔开时,表示为多个属性值设置过渡属性。


1)若不同的transition-property值,对应的其它(duration||timing-function||delay)属性值相同时,对应的属性值设置一个即可。


div {
	    width: 100px;
		height: 100px;
		font-weight: bold;
		background-color: red;
		color: white;
		
		transition: width,background-color; /* 不同的property值 */
		transition-duration: 1s;
		transition-timing-function: linear;  /* 对应的属性值设置一个 */
		transition-delay: 1s;
		
	  }
	  
	  div:hover {
	    width: 300px;
		background-color: blue;
	  }

效果如下:



可以看出,上面property的属性值不同,但它们对应的其它属性值相同,所以其它的属性值只设置一个即可。



2)当property的值的个数多于其它属性值(其它属性值的个数大于1)时,按照顺序取值。

div {
	    width: 100px;
		height: 100px;
		font-weight: bold;
		background-color: red;
		color: white;
		
		transition: width,background-color,opacity;
		transition-duration: 1s,5s;
		transition-timing-function: linear,ease;
		transition-delay: 1s,20ms;
		
	  }

效果如下





3)当property的属性值个数少于其它属性值的个数时,多余的将无效(按顺序取值)。

div {
	    width: 100px;
		height: 100px;
		font-weight: bold;
		background-color: red;
		color: white;
        transition: width;
		transition-duration: 1s,5s;
		transition-timing-function: linear,ease;
		transition-delay: .5s,20ms;		
		
	  }
	 		  
	  div:hover {
	    width: 300px;
	  }

效果如下:




4)当property属性值中出现一个无效值时,依然按顺序对应其它属性值(若其它属性值也出现无效值情况类似)。


div {
	    width: 100px;
		height: 100px;
		font-weight: bold;
		background-color: red;
		color: white;
		
        transition: width,wuxiaozhi,background-color;
		transition-duration: 1s,5s;
		transition-timing-function: linear,ease;
		transition-delay: .5s,20ms;		
		
	  }
	 		  
	  div:hover {
	    width: 300px;
		background-color: blue;
	  }

效果如下:





5)当property属性值出现重复值时,只取最后一个值为准,前面重复值无效,并按顺序对应其它属性值。







过渡阶段

过渡开始时间=样式改变的时刻+过渡延迟时间;而过渡结束时间=过渡开始时间+过渡持续时间

过渡起始值=过渡前 的过渡属性值;而过渡结束值=过渡完成后 的过渡属性值

过渡分为两个阶段:前进(forward)和反向(reverse)。若前进阶段进行一段时间后进入反向阶段,则反向阶段的初始值是前进阶段结束时的瞬时值


  • 27
    点赞
  • 170
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: CSS3过渡transition属性是用来控制HTML元素从一种样式逐渐转变为另一种样式的效果。该属性可以设置元素的属性在何时开始变化,变化持续的时间以及变化的方式,如线性或缓动。通过使用过渡属性,我们可以为页面添加更加生动和动态的效果,增强用户体验。 ### 回答2: CSS3 过渡Transition属性是指在进行 CSS 属性变化时,让元素以平滑的效果进行过渡。它使用 transition 属性实现,并且可以允许我们控制元素属性从一个值变到另一个值的过程。需要注意的是,过渡动画仅仅在元素从一种样式值变为另一种样式值的时候才会发生。 过渡属性可以应用于四个元素状态:默认状态,悬停状态,焦点状态和活动状态。在默认状态下,元素保持默认样式;在悬停状态下,元素在鼠标下变换样式;焦点状态则是在用户将焦点放在某个元素上时出发的变换效果;活动状态则是在用户点击某个元素并未释放鼠标时的显示效果。 过渡属性包含如下几个常用属性: 1. transition-delay:定义过渡效果何时开始。 2. transition-duration:定义过渡效果需要多长时间完成。 3. transition-property:定义过渡效果应用于哪些 CSS 属性。 4. transition-timing-function:定义过渡效果的速度曲线。 其中,transition-property用于指定要过渡CSS 属性,可以指定一个或多个属性,每个属性之间用逗号隔开。transition-timing-function属性用于指定过渡效果的速度曲线,可以从线性到缓动等多种类型。 同时,我们还可以使用一些简写属性来缩短书写长度,例如transition: width 1s ease-in-out;表示需要将元素的宽度进行1秒的缓动过渡效果,速度曲线为 ease-in-out。过渡动画是 CSS3 里面非常实用的效果,可以增强页面的可读性和美观性,从而提升用户体验。 ### 回答3: CSS3 过渡transition属性CSS3中非常有用的一个特性,可以实现在一个元素的属性改变时,能够平滑地过渡到新的值,这就为网页中一些动态效果的实现提供了很好的基础。 transition 属性由四个部分组成,其中最主要的两个是要过渡属性过渡时间,其他两个属性过渡方式(transition-timing-function)和延迟时间(transition-delay)。通过这些组合,可以轻松创建出令人惊叹的效果。 要过渡属性可以是任意CSS属性,比如颜色、大小、位置、背景图片等等。过渡时间取决于你希望过渡需要多少时间,单位是秒或毫秒。如果不指定过渡方式,那么默认为 linear,也就是线性的。如果希望过渡更加平滑,可以使用 ease 或 ease-in 等。如果想编写自己的过渡方式,可以使用 cubic-bezier 函数来自定义一个贝塞尔曲线。 除了这些基本的属性外,还可以使用 transition-property 指定过渡属性transition-duration 指定过渡时间,transition-timing-function 指定过渡方式,transition-delay 指定过渡的延迟时间。 最常见的应用是在鼠标滑过时触发元素的过渡效果,但是 transition 属性不只限于此,它还可以在展示数据、页面切换以及应用中产生各种有趣的效果。总之, CSS3 过渡属性让开发者得以轻松创建出美观、流畅的动态效果,从而增强了网页的交互性和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值