CSS中利用Transition实现动画效果

具体例子

 代码如下 复制代码

img{
    height:15px;
    width:15px;
}

img:hover{
    height: 450px;
    width: 450px;
}

transition的作用在于,指定状态变化所需要的时间。

 代码如下 复制代码
img{
    transition: 1s;
}

我们还可以指定transition适用的属性,比如只适用于height。

 代码如下 复制代码
img{
    transition: 1s height;
}

这样一来,只有height的变化需要1秒实现,其他变化(主要是width)依然瞬间实现~

例子

 代码如下 复制代码

<nav>
     <ul id="main-nav">
         <li><a href=http://www.111cn.net>HOME</a></li>
         <li><a href="#">a</a></li>
         <li><a href="#">b</a></li>
         <li><a href="#">c</a></li>
     </ul>
</nav>

怎么来实现这个功能呢?

#main-nav a{
    opacity: 1;
       -webkit-transition: opacity 0.3s;
       -moz-transition: opacity 0.3s;
       -webkit-animation-timing-function: ease-out;
       -moz-animation-timing-function: ease-out;
 }
 
 #main-nav a:hover{
 opacity: 0.5; }

· transition的使用注意
(1)目前,各大浏览器(包括IE 10)都已经支持无前缀的transition,所以transition已经可以很安全地不加浏览器前缀。
(2)不是所有的CSS属性都支持transition,完整的列表查看这里,以及具体的效果。
(3)transition需要明确知道,开始状态和结束状态的具体数值,才能计算出中间状态。比如,height从0px变化到100px,transition可以算出中间状态。但是,transition没法算出0px到auto的中间状态,也就是说,如果开始或结束的设置是height: auto,那么就不会产生动画效果。类似的情况还有,display: none到block,background: url(foo.jpg)到url(bar.jpg)等等。

· transition的局限
transition的优点在于简单易用,但是它有几个很大的局限。
(1)transition需要事件触发,所以没法在网页加载时自动发生。
(2)transition是一次性的,不能重复发生,除非一再触发。
(3)transition只能定义开始状态和结束状态,不能定义中间状态,也就是说只有两个状态。
(4)一条transition规则,只能定义一个属性的变化,不能涉及多个属性。
CSS Animation就是为了解决这些问题而提出的。

 

时间: 2024-10-29 22:01:43

CSS中利用Transition实现动画效果的相关文章

CSS3使用Animate.css制作超炫的动画效果

Animate.css是一个超强的CSS3动画库,它使用简单,只需要将相关效果对应的class加入页面元素中,就能实现翻转.滑动.旋转等等复杂超炫的跨浏览器的动画效果,它让开发这制作页面动画变得非常简单. 首先引入animate css文件. <link rel="stylesheet" href="animate.min.css"> 然后给指定的元素加上指定的动画class样式名. <div class="animated bounce

Android仿支付宝中余额宝的数字动画效果_Android

实现效果图: 下面是具体代码,可直接复制: package com.lcw.rabbit.widget; import android.animation.ObjectAnimator; import android.content.Context; import android.text.TextUtils; import android.util.AttributeSet; import android.view.animation.AccelerateDecelerateInterpola

如何在CSS中写脚本实现交互效果?

我们浏览网页的时候,经常会遇到一些交互的效果.例如容器在鼠标移上去的时候,会发生一些变化.这些效果,可以用多种方法来实现.现在我们要解决的是如何在CSS中写脚本实现交互效果. CSS代码如下:  代码如下 复制代码 event:expression( onmouseover = function()     {     this.style.backgroundColor='#ccc'     this.style.border='1px solid #000'     }, onmouseou

Android开发中MJRefresh自定义刷新动画效果_Android

[一]常见用法 最原始的用法,耦合度低,但是不能统一管理.我们需要在每一个控制器都写以下代码,很繁琐,以后项目修改起来更繁琐,得一个控制器一个控制器的去定位.修改. 1.1 使用默认刷新(耦合度底,但是想统一修改起来特别麻烦) self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{ //在这里执行刷新操作 }]; self.tableView.mj_header = [MJRefreshNorm

Android仿支付宝中余额宝的数字动画效果

实现效果图: 下面是具体代码,可直接复制: package com.lcw.rabbit.widget; import android.animation.ObjectAnimator; import android.content.Context; import android.text.TextUtils; import android.util.AttributeSet; import android.view.animation.AccelerateDecelerateInterpola

Android开发中MJRefresh自定义刷新动画效果

[一]常见用法 最原始的用法,耦合度低,但是不能统一管理.我们需要在每一个控制器都写以下代码,很繁琐,以后项目修改起来更繁琐,得一个控制器一个控制器的去定位.修改. 1.1 使用默认刷新(耦合度底,但是想统一修改起来特别麻烦) self.tableView.mj_header = [MJRefreshNormalHeader headerWithRefreshingBlock:^{ //在这里执行刷新操作 }]; self.tableView.mj_header = [MJRefreshNorm

最近在网页中常用的css和js酷炫动画效果

  最近在网站和博客上能发现使用各种各样很帮效果的动画效果.CodyHouse介绍了这些CSS和Javas cript的编码教程. 因为每个文件都可以整套下载,所以马上就可以使用. 固定背景效果 →效果页 适用的浏览器:Chrome,Safari,Firefox,Opera,IE9+ 在Section和div垂直配置的长页面中,把背景固定,像卷帘被提起似的滚动. 产品展示滑块 →效果页 适用的浏览器:Chrome,Safari,Firefox,Opera,IE9+ 把配置卡片状的各个产品,用很棒

在Fireworks中制作淡入淡出动画效果

淡出|淡入 淡入淡出动画效果 用fireworks做的淡入淡出效果,有人说看PNG格式看不出真正的步骤,所以在此补上这样一篇教程. 对象的淡入淡出效果是firewoks可以创建的普通效果之一,对两个链接对象进行插帧的时候,其中一个对象的不透明度设置为0%,一个对象的不透明度设置为100%,就可以获得淡入淡出效果. 制作步骤: 一.首先新建一个文件,画一个圆,在FILL面板中设置edge:feather:10,设feather的目的是在运动过程中边缘不至于太生硬,影响效果.点中圆,按F8键,选择t

在PPT2007中制作礼花绽放动画效果

  家家户户都有除夕放烟花的习惯,尤其是一些小地方城市,过节礼花那是必不可少的.放礼花可以增添节日的喜庆气氛,但是大家也需要注意自身安全,下面简单介绍一下礼花绽放动画效果的制作. 1.将背景颜色设置为黑色,网上下载礼花图片,先选中下方的上升轨迹线,添加动画--进入-擦除. 2.在自定义窗格中,设置开始:之前. 3.在给下方的上升轨迹线添加效果--退出--淡出. 4.点击速度右侧的小三角下拉箭头,将速度设置为快速. 5.点击下方动作后的三角下拉箭头,选择计时. 6.给淡出效果稍作修改,延迟0.5秒