css3transition可以用于列表,记录一个小点react+antd:支持css3的transition动画的一些属性列表...
Posted weixin_39890543
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了css3transition可以用于列表,记录一个小点react+antd:支持css3的transition动画的一些属性列表...相关的知识,希望对你有一定的参考价值。
记录的原因:项目中遇到一个问题,使用antd的table组件,在鼠标悬停到一行的时候显示或者隐藏按钮,如下:
鼠标进入一行显示设为默认按钮,移出隐藏按钮:
开始我的做法是找到table组件的属性通过setState来改变button的visibility属性,虽然效果是达到了,但是显示和隐藏有个时间的延迟,开始我以为是因为setState的异步机制,会在频繁的设置state的时候合并处理导致的,
onRowMouseEnter={() => {
this.setState({
isShow:true
});
}}
onRowMouseLeave={() => {
this.setState({
isShow:false
});
}}
/>
后来实验之后发现并不是,于是我就不用setState的来设置显示和隐藏,直接给tr加上类名,通过hover来显示隐藏
rowClassName={() => {
return "tempalte-tr";
}}
/>
.tempalte-tr .template-setDefault{
visibility: hidden;
}
.tempalte-tr:hover .template-setDefault{
visibility: visible;
}
这样实验之后发现同样的问题依然存在,后来想到display跟visibility的区别:一个是占位一个不占位,于是改成display来做,果然达到效果,鼠标一进一出是立刻显示和隐藏的。
.tempalte-tr .template-setDefault{
display: none;
}
.tempalte-tr:hover .template-setDefault{
display: inline-block;
}
仔细一想为什么会有这个不同呢,display跟visibility的区别不就是占位不占位么,为什么一个有动画一个没有动画呢,antd对button组件确实做了动画设置:
.ant-btn {
display: inline-block;
margin-bottom: 0;
font-weight: 500;
text-align: center;
-ms-touch-action: manipulation;
touch-action: manipulation;
cursor: pointer;
background-image: none;
border: 1px solid transparent;
white-space: nowrap;
line-height: 1.15;
padding: 0 15px;
font-size: 14px;
border-radius: 0;
height: 28px;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
transition: all .3s cubic-bezier(.645,.045,.355,1);
position: relative;
color: #576077;
background-color: #fff;
border-color: #d9d9d9;
}
接着我就去mdn上搜索关于transition动画到底对哪些css属性有效果呢,果不其然,display是没有动画效果的,而visibility是有动画效果的,
链接如下:
又学到一个点啊,由此记录一下:)
以上是关于css3transition可以用于列表,记录一个小点react+antd:支持css3的transition动画的一些属性列表...的主要内容,如果未能解决你的问题,请参考以下文章
css3transition可以用于列表,记录一个小点react+antd:支持css3的transition动画的一些属性列表...
用于工作表的谷歌应用脚本 - 选择多个列表值并记录在同一个单元格中
CloudKit - NSPredicate 用于在引用列表中查找包含多个 CKReference 的所有记录