本页目录
这里我们要使用 transition 标签
- 原文来源:详情
效果预览
<div class="n-box"></div><p>请把鼠标指针移动到蓝色的 div 元素上,就可以看到过渡效果。</p><p><b>注释:</b>本例在低版本 Internet Explorer 中无效。</p><style type="text/css"> .n-box { width:100px; height:100px; background:blue;/*背景颜色*/ transition:width 2s;/*动画*/ -moz-transition:width 2s; /* Firefox 4 */ -webkit-transition:width 2s; /* Safari and Chrome */ -o-transition:width 2s; /* Opera */ }
.n-box:hover/*触发*/ { width:300px; }</style>方法介绍
transition:颜色 变换延续的时间 变换速率
transition:background-color 0.3s linear
变换速率:
1、ease:(逐渐变慢)默认值,ease 函数等同于贝塞尔曲线(0.25, 0.1, 0.25, 1.0).
2、linear:(匀速),linear 函数等同于贝塞尔曲线(0.0, 0.0, 1.0, 1.0).
3、ease-in:(加速),ease-in 函数等同于贝塞尔曲线(0.42, 0, 1.0, 1.0).
4、ease-out:(减速),ease-out 函数等同于贝塞尔曲线(0, 0, 0.58, 1.0).
5、ease-in-out:(加速然后减速),ease-in-out 函数等同于贝塞尔曲线(0.42, 0, 0.58, 1.0)
6、cubic-bezier:(该值允许你去自定义一个时间曲线), 特定的 cubic-bezier 曲线。 (x1, y1, x2, y2)四个值特定于曲线上点 P1 和点 P2。所有值需在[0, 1]区域内,否则无效。
<p>//Mozilla内核</p>
<p>-moz-transition :</p>
<p>//Webkit内核</p>
<p>-webkit-transition :</p>
<p>//Opera</p>
<p>-o-transition :</p>
<p>//W3C 标准</p>
<p>transition :</p>下面实例,演示,鼠标经过时,改变 div 宽度,平滑改变,带动画
CSS:
.n-box { width:100px; height:100px; background:blue;/*背景颜色*/ transition:width 2s;/*动画*/ -moz-transition:width 2s; /* Firefox 4 */ -webkit-transition:width 2s; /* Safari and Chrome */ -o-transition:width 2s; /* Opera */ }
.n-box:hover/*触发*/ { width:300px; }HTML:
<div class="n-box">div>
<p>请把鼠标指针移动到蓝色的 div 元素上,就可以看到过渡效果。p>
<p><b>注释:b>本例在低版本 Internet Explorer 中无效。p>补充说明
- 原文来源:详情
transition 有一个特性,只要是带有数值类型的属性(例如:% , rgba() , rgb() , hsla() , 数字等),在其发生变化的时候,均会被触发动画效果。
因此,不管:hover 伪类什么时候丢掉我的动画,也不管我:hover 时,元素动画走到了什么地步。只要元素本身带有 transitioin,该动画便会从当前动画执行到的地方,以相同的时间返回原样。
这只是最简单的动画实现,但对于目前大部分需求来说,配合配合贝塞尔曲线,已经足够用了。
你仅仅需要做到,hover 中的最终样式,保证为数值样式变 OK 了。
像 display:block 变为 display:none 就不好使了,此时我们可以用 visibilty:1 变为 visibilty:0,同样也可以简单实现显示到隐藏的效果。
另外加一句,不太清楚 transition 属性的可以自行去百度去,transition-timing-function 属性定义的速度曲线,使用 cubic-bezier 贝塞尔曲线,可以做到很多效果,大家可以上这个网址去试一试贝塞尔曲线实现的动画。
