关于CSS3属性transition的触发
关于怎么触发transition的效果,前面有篇文章说过一次,《关于transition和animation》,而且在实际的项目生产中,也是一直这么使用的,因为明明知道直接添加class是无法触发transition效果的,那何必再做这些无用功呢?而且很确定的是,之前也做过各种测试的。
然而,事实真的这样吗?
今天突然想到是不是应该再看看transition这个属性。
其中的属性不做一一介绍,我自己也没有那么透彻的理解每一个属性值的每一小点,我们这里依然聚焦于怎么触发transition这个变形的效果。
<div class="btn-transiton">
<a href="javascript:;">触发transition-show</a>
<a href="javascript:;">触发transition-hide</a>
</div>
<div class="transition"></div>
比较简单的html结构,看看css
.btn-transiton {
line-height: 2;
padding: 0.5rem;
}
.transition {
width: 2rem;
height: 2rem;
background: #ccc;
opacity: 1;
transition: height 1s ease-in;
}
刚开始的时候,肯定是通过js设置css属性,让其达到触发transition动画效果的目的。
var height = $(".transition").height();
$(".btn-transiton").on("click", "a:first-child", function () {
$(".transition").css("height", 0);
}).on("click", "a:last-child", function () {
$(".transition").css("height", height);
});
看到这样的代码,当然就会想到利用height()函数替代:
var height = $(".transition").height()
$(".btn-transiton").on("click", "a:first-child", function () {
$(".transition").height(0);
}).on("click", "a:last-child", function () {
$(".transition").height(height);
});
当走到这一步的时候,如果不试验一下使用添加删除class触发这个transition效果,能死心吗?
为css添加:
.transition.active-height {
height: 0;
}
js改造:
var height = $(".transition").height()
$(".btn-transiton").on("click", "a:first-child", function () {
$(".transition").addClass("active-height");
}).on("click", "a:last-child", function () {
$(".transition").removeClass("active-height");
});
此时,令人意想不到的事情发生了,添加删除class,居然也可以触发transition的动画效果了,究竟什么时候可以的?或者哪一版本浏览器开始支持这一特性的?并不仅仅是chrome浏览器支持,firefox,safari也都可以支持。
当前电脑上安装的chrome版本为:

firefox版本为:

Safari版本:

为了避免出现仅仅是height属性才有这种情况发生,使用opacity、transform属性,也能够触发相同效果,甚至同时触发width、height、all都能够实现。
这样就可以减少很多,不必要的js写css的过程!
关于CSS3属性transition的触发的更多相关文章
- 理解CSS3属性transition
一.说明 1.1 定义和用法 transition 属性是一个简写属性,用于设置四个过渡属性: transition-property:规定设置过渡效果的CSS属性的名称. transition-du ...
- css3属性 transition transform
1.transition 译:过渡,转变 可以设置过渡属性 transition: property duration timing-function delay; transition-proper ...
- CSS3属性transition
CSS3 Transitions 指定过渡 语法: transition: property duration timing-function delay; 参数一: transition-p ...
- 使用css3属性transition实现页面滚动
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-type" content ...
- IT兄弟连 HTML5教程 CSS3属性特效 transition过渡
CSS3的transition允许css的属性值在一定的时间区间内平滑地过渡.这种效果可以在鼠标单击.获得焦点.被点击或对元素任何改变中触发,并圆滑地以动画效果改变CSS的属性值. transitio ...
- css3中transition属性详解
css3中通过transition属性可以实现一些简单的动画过渡效果~ 1.语法 transition: property duration timing-function delay; transi ...
- 使用CSS3的“transition ”属性控制长宽度的缓慢变化
有时候我们可能会想要改变某个资源信息的长宽度,比如改变某个div的宽度,而且需要让这个宽度缓慢改变,而不是突然就改变了.这时候你可能会想到使用jquery的animate()函数,不过这个方法既得引用 ...
- CSS3 : transition 属性
CSS3的 transition 属性用于状态过度效果! 1.语法: transition: property duration timing-function delay; -moz-transit ...
- 通过CSS3属性值的变化实现动画效果+触发这些动画产生交互
css3过渡 transition 兼容性:IE10+ transition: none | all | property 默认为none all 表示所有属性过渡 property 指定属性值,如c ...
随机推荐
- redis : 桌面管理工具 redis-desktop-manager使用指南
概要:一款好用的Redis桌面管理工具,支持命令控制台操作,以及常用,查询key,rename,delete等操作. 下载软件,请点击下面链接,进入下载页,选择对应版本: https://redisd ...
- jquery.form插件中动态修改表单数据
jquery.form jquery.form插件(http://malsup.com/jquery/form/)是大家经常会用到的一个jQuery插件,它可以很方便将表单转换为ajax的方式进行提交 ...
- 关于AXI4-Stream to Video Out 和 Video Timing Controller IP核学习
关于AXI4-Stream to Video Out 和 Video Timing Controller IP核学习 1.AXI4‐Stream to Video Out Top‐Level Sign ...
- Python依赖打包发布详细
http://www.cnblogs.com/mywolrd/p/4756005.html 将Python脚本打包成可执行文件 Python是一个脚本语言,被解释器解释执行.它的发布方式: .py ...
- 黄聪:AngularJS如何在filter中相互调用filter
调用方式如下: app.filter('filter2', function( $filter ) { return function( input) { return $filter('filter ...
- pm2 常用命令
pm2 是一个带有负载均衡功能的Node应用的进程管理器.当你要把你的独立代码利用全部的服务器上的所有CPU,并保证进程永远都活着,0秒的重载, PM2是完美的.它非常适合IaaS结构,但不要把它用于 ...
- table thead 置顶
table tbody { display:block; max-height:300px; overflow-y:scroll;}table thead, tbody tr { display:ta ...
- 运营站点-开放robots后,站内google搜索数量第二天10条左右,第5天搜录9920条,可喜可贺
开放robots后,站内google搜索数量第二天10条左右,第5天搜录9920条,可喜可贺 2014年4月29日 16:17:56 到目前为之已搜录14000多条,已有客户在网站注册,加入购物车
- ALGO-117_蓝桥杯_算法训练_友好数
问题描述 有两个整数,如果每个整数的约数和(除了它本身以外)等于对方,我们就称这对数是友好的.例如: 9的约数和有:+= 4的约数和有:+= 所以9和4不是友好的. 220的约数和有: = 284的约 ...
- Socket调用Close后如何终止套接口的问题
setsockopt 设置 SO_LINGER 选项 此选项指定函数close对面向连接的协议如何操作(如TCP).内核缺省close操作是立即返回,如果有数据残留在套接口缓冲区中则系统将试着将这些数 ...