记录一个小点react+antd:支持css3的transition动画的一些属性列表

记录的原因:项目中遇到一个问题,使用antdtable组件,在鼠标悬停到一行的时候显示或者隐藏按钮,如下:
鼠标进入一行显示设为默认按钮,移出隐藏按钮

记录一个小点react+antd:支持css3的transition动画的一些属性列表_第1张图片

开始我的做法是找到table组件的属性通过setState来改变buttonvisibility属性,虽然效果是达到了,但是显示和隐藏有个时间的延迟,开始我以为是因为setState的异步机制,会在频繁的设置state的时候合并处理导致的,

 {
     this.setState({
          isShow:true
     }); 
  }}
 onRowMouseLeave={() => {
     this.setState({
          isShow:false
     }); 
  }}
/>

后来实验之后发现并不是,于是我就不用setState的来设置显示和隐藏,直接给tr加上类名,通过hover来显示隐藏

{ 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是有动画效果的
链接如下:https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_animated_properties

记录一个小点react+antd:支持css3的transition动画的一些属性列表_第2张图片

记录一个小点react+antd:支持css3的transition动画的一些属性列表_第3张图片

又学到一个点啊,由此记录一下:)

参考:https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_Transitions/Using_CSS_transitions#哪些CSS属性可以动画

你可能感兴趣的:(记录一个小点react+antd:支持css3的transition动画的一些属性列表)