花式使用CSS3 transition_html/css_WEB-ITnose
程序员文章站
2022-03-20 17:05:17
...
欢迎交换友链 Laker's Blog--进击的程序媛
Github: https://github.com/younglaker
微博:江小湖Laker
本文讲介绍 :hover、 :active、 :focus、 :checked、 Media Queries、 JavaScript控制六种方法触发CSS3 transition,以及 transitionend事件的使用。
:hover
最常见的是用hover:
:hover.hover { width: 100px; height: 100px; background: #222; color: white; text-align: center; transition: all 2s ease;}.hover:hover { width: 200px; height: 200px;}
Demo
:active
mousedown s时触发:
:active.active { width: 100px; height: 100px; background: #222; color: white; text-align: center; transition: all 2s ease;}.active:active { width: 200px; height: 200px;}
Demo
:focus
文本框聚焦时(这个在很多网站的搜索框的动画效果里用到):
.focus input, .focus textarea { width: 200px; transition: width 1s ease;}.focus input:focus, .focus textarea:focus { width: 300px;}
Demo
:checked
用于checkboxes 和 radio buttons 被选中时:
Input 1input[type="checkbox"]:checked { height: 20px; transition: all 1s ease;}input[type="checkbox"]:checked { width: 30px;}
Input 2
Input 3
Input 4
Demo
Media Queries
改变浏览器窗口大小时触发:
media.media { width: 200px; height: 200px; background: #222; color: white; text-align: center; transition: width 1s ease;}@media only screen and (max-width : 960px) { .media { width: 100px; height: 100px; }}
Demo
JavaScript事件触发CSS3 transition
通过 JavaScript 或者 jQuery 添加、删除class来完成动画,CSS格式类似 :hover。
例如:
以 click 事件为例,当点击方块时,变化长宽、背景色:
HTML:
CSS:
.box { width: 200px; height: 200px; background: black; -webkit-transition: all 2s ease; -moz-transition: all 2s ease; -o-transition: all 2s ease; transition: all 2s ease;}.box.clicked { width: 300px; height: 300px; background: blue;}
JavaScript:
$(".box").click(function() { $(this).toggleClass("clicked");});
Demo
如果用原生JavaScript,可以自己写个添加和删除类的函数。
transitionend 事件
transitionend 事件会在 CSS transition 结束后触发。兼容Chrome、Firefox、Safari、IE10+:
element.addEventListener('transitionend', callback, false);
为保证低版本兼容性可以写webkitTransitionEnd(WebKit )、otransitionend(Opera)、MSTransitionEnd(IE 10+)、transitionend(Mozilla)。 详见此讨论。
有没有渐变开始的事件?目前只有IE 10+ 有 transionstart 事件,W3C目前未有此标准。
上一篇: HTML网页优化压缩的实现步骤
推荐阅读
-
css3中关于伪类的使用_html/css_WEB-ITnose
-
css3 +html5+js 手机网页布局问题(在微信上使用).两个问题_html/css_WEB-ITnose
-
学习使用 CSS3 制作网站面包屑导航效果_html/css_WEB-ITnose
-
CSS3实战开发:使用CSS3实现photoshop的过滤效果_html/css_WEB-ITnose
-
使用css3画饼图_html/css_WEB-ITnose
-
如何使用CSS3实现书页(书本)卷角效果_html/css_WEB-ITnose
-
使用CSS3实现超炫的Loading(加载)动画效果_html/css_WEB-ITnose
-
css3的transition属性的使用_html/css_WEB-ITnose
-
css3中matrix函数的使用_html/css_WEB-ITnose
-
CSS3阴影 box-shadow的使用和技巧总结_html/css_WEB-ITnose