transition-duration

版本: CSS3

transition-duration 属性以秒或毫秒为单位指定过渡动画所需的时间。默认值为 0s ,表示不出现过渡动画。可以指定多个时长,每个时长会被应用到由 transition-property 指定的对应属性上。如果指定的时长个数小于属性个数,那么时长列表会重复。如果时长列表更长,那么该列表会被裁减。两种情况下,属性列表都保持不变。

这是一个实验中的功能
此功能某些浏览器尚在开发中,请参考浏览器兼容性表格以得到在不同浏览器中适合使用的前缀。由于该功能对应的标准文档可能被重新修订,所以在未来版本的浏览器中该功能的语法和行为可能随之改变。

示例

/* <time> 值 */
transition-duration: 6s;
transition-duration: 120ms;
transition-duration: 1s, 15s;
transition-duration: 10s, 30s, 230ms;

/* 全局值 */
transition-duration: inherit;
transition-duration: initial;
transition-duration: unset;

浏览器支持

IE浏览器 火狐浏览器 opera浏览器 chrome浏览器 safari浏览器
IE10以上浏览器都支持 transition-property

语法

transition-duration : <time>

取值:

<time> :指定对象过渡的持续时间。 <time> 类型数据。表示过渡属性从旧的值转变到新的值所需要的时间。如果时长是 0s ,表示不会呈现过渡动画,属性会瞬间完成转变。不接受负值。

说明:

检索或设置对象过渡的持续时间。

  • 如果提供多个属性值,以逗号进行分隔。
  • 对应的脚本特性为 transitionDuration
默认值 0s
适用于 所有元素,包含伪对象 ::before and ::after
继承性
动画性
计算值 指定值
媒体 交互

例子

transition-duration: 0.5s

<div class="parent">
  <div class="box">lorem</div>
</div>

//CSS
.parent { width: 250px; height:125px;}
.box {
    width: 100px;
    height: 100px;
    font-size: 20px;
    left: 0px;
    top: 0px;
    position:absolute;
    -webkit-transition-property: width height background-color font-size left top transform -webkit-transform color;
    -webkit-transition-duration:0.5s;
    -webkit-transition-timing-function: ease-in-out;
    transition-property: width height background-color font-size left top transform -webkit-transform color;
    transition-duration:0.5s;
    transition-timing-function: ease-in-out;
}
.box1{
    transform: rotate(270deg);
    -webkit-transform: rotate(270deg);
    width: 50px;
    height: 50px;
    color: yellow;
    font-size: 18px;
    left: 150px;
    top:25px;
    position:absolute;
    -webkit-transition-property: width height background-color font-size left top transform -webkit-transform color;
    -webkit-transition-duration:0.5s;
    -webkit-transition-timing-function: ease-in-out;
    transition-property: width height background-color font-size left top transform -webkit-transformv color;
    transition-duration:0.5s;
    transition-timing-function: ease-in-out;
}

//JS
function updatetransition() {
  var el = document.queryselector("div.box");
   
  if (el) {
    el.classname = "box1";
  }
 else {
    el = document.queryselector("div.box1");
    el.classname = "box";
  }
   
  return el;
}

var intervalid = window.setinterval(updatetransition, 7000);

transition-duration: 1s

<div class="parent">
  <div class="box">lorem</div>
</div>

//CSS
.parent { width: 250px; height:125px;}
.box {
    width: 100px;
    height: 100px;
    font-size: 20px;
    left: 0px;
    top: 0px;
    position:absolute;
    -webkit-transition-property: width height background-color font-size left top -webkit-transform color;
    -webkit-transition-duration:1s;
    -webkit-transition-timing-function: ease-in-out;
    transition-property: width height background-color font-size left top transform color;
    transition-duration:1s;
    transition-timing-function: ease-in-out;
}
.box1{
    transform: rotate(270deg);
    -webkit-transform: rotate(270deg);
    width: 50px;
    height: 50px;
    color: yellow;
    font-size: 18px;
    left: 150px;
    top:25px;
    position:absolute;
    -webkit-transition-property: width height background-color font-size left top -webkit-transform transform color;
    -webkit-transition-duration:1s;
    -webkit-transition-timing-function: ease-in-out;
    transition-property: width height background-color font-size left top transform -webkit-transform color;
    transition-duration:1s;
    transition-timing-function: ease-in-out;
}

//JS

function updatetransition() {
  var el = document.queryselector("div.box");
   
  if (el) {
    el.classname = "box1";
  }
 else {
    el = document.queryselector("div.box1");
    el.classname = "box";
  }
   
  return el;
}

var intervalid = window.setinterval(updatetransition, 7000);

transition-duration: 2s

<div class="parent">
  <div class="box">lorem</div>
</div>


//CSS
.parent { width: 250px; height:125px;}
.box {
    width: 100px;
    height: 100px;
    font-size: 20px;
    left: 0px;
    top: 0px;
    position:absolute;
    -webkit-transition-property: width height background-color font-size left top transform -webkit-transform color;
    -webkit-transition-duration:2s;
    -webkit-transition-timing-function: ease-in-out;
    transition-property: width height background-color font-size left top transform -webkit-transform color;
    transition-duration:2s;
    transition-timing-function: ease-in-out;
}
.box1{
    transform: rotate(270deg);
    -webkit-transform: rotate(270deg);
    width: 50px;
    height: 50px;
    color: yellow;
    font-size: 18px;
    left: 150px;
    top:25px;
    position:absolute;
    -webkit-transition-property: width height background-color font-size left top transform -webkit-transform color;
    -webkit-transition-duration:2s;
    -webkit-transition-timing-function: ease-in-out;
    transition-property: width height background-color font-size left top transform -webkit-transform color;
    transition-duration:2s;
    transition-timing-function: ease-in-out;
}

//JS

function updatetransition() {
  var el = document.queryselector("div.box");
   
  if (el) {
    el.classname = "box1";
  }
 else {
    el = document.queryselector("div.box1");
    el.classname = "box";
  }
   
  return el;
}

var intervalid = window.setinterval(updatetransition, 7000);

transition-duration: 4s

<div class="parent">
  <div class="box">lorem</div>
</div>

//CSS

.parent { width: 250px; height:125px;}
.box {
    width: 100px;
    height: 100px;
    font-size: 20px;
    left: 0px;
    top: 0px;
    position:absolute;
    -webkit-transition-property: width height background-color font-size left top transform -webkit-transform color;
    -webkit-transition-duration:4s;
    -webkit-transition-timing-function: ease-in-out;
    transition-property: width height background-color font-size left top transform -webkit-transform color;
    transition-duration:4s;
    transition-timing-function: ease-in-out;
}
.box1{
    transform: rotate(270deg);
    -webkit-transform: rotate(270deg);
    width: 50px;
    height: 50px;
    color: yellow;
    font-size: 18px;
    left: 150px;
    top:25px;
    position:absolute;
    -webkit-transition-property: width height background-color font-size left top transform -webkit-transform color;
    -webkit-transition-duration:4s;
    -webkit-transition-timing-function: ease-in-out;
    transition-property: width height background-color font-size left top transform -webkit-transform color;
    transition-duration:4s;
    transition-timing-function: ease-in-out;
}

//JS
function updatetransition() {
  var el = document.queryselector("div.box");
   
  if (el) {
    el.classname = "box1";
  }
 else {
    el = document.queryselector("div.box1");
    el.classname = "box";
  }
   
  return el;
}

var intervalid = window.setinterval(updatetransition, 7000);