0°

CSS3实现伪类hover离开时平滑过渡效果

给hover做个动画

效果演示:

hover动画

提取码:无,解压码:

下载

这里我们要使用 transition 标签

来源于:

https://www.cnblogs.com/phpyangbo/p/6812480.html

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]区域内,否则无效。

//Mozilla内核

-moz-transition :

//Webkit内核

-webkit-transition :

//Opera

-o-transition :

//W3C 标准

transition :

下面实例,演示,鼠标经过时,改变div宽度,平滑改变,带动画

CSS:

div
{
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 */
}

div:hover
{
width:300px;
}

HTML:

<div>div>

<p>请把鼠标指针移动到蓝色的 div 元素上,就可以看到过渡效果。p>

<p><b>注释:b>本例在低版本 Internet Explorer 中无效。p>

 

来源于:

https://segmentfault.com/a/1190000010583130

transition有一个特性,只要是带有数值类型的属性(例如:% , rgba() , rgb() , hsla() , 数字等),在其发生变化的时候,均会被触发动画效果。

因此,不管:hover伪类什么时候丢掉我的动画,也不管我:hover时,元素动画走到了什么地步。只要元素本身带有transitioin,该动画便会从当前动画执行到的地方,以相同的时间返回原样。

这只是最简单的动画实现,但对于目前大部分需求来说,配合配合贝塞尔曲线,已经足够用了。

你仅仅需要做到,hover中的最终样式,保证为数值样式变OK了。

像display:block变为display:none就不好使了,此时我们可以用visibilty:1变为visibilty:0,同样也可以简单实现显示到隐藏的效果。

另外加一句,不太清楚transition属性的可以自行去百度去,transition-timing-function属性定义的速度曲线,使用cubic-bezier贝塞尔曲线,可以做到很多效果,大家可以上这个网址去试一试贝塞尔曲线实现的动画

0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论