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动画的一些属性列表...

用于选择多个记录的良好UI的示例

用于工作表的谷歌应用脚​​本 - 选择多个列表值并记录在同一个单元格中

CloudKit - NSPredicate 用于在引用列表中查找包含多个 CKReference 的所有记录

安卓权威编程 挑战练习 13.8 用于RecyclerView的空视图

用于一对条件列表的子句