How do I change the ripple background color on Button?

后端 未结 2 1346
太阳男子
太阳男子 2021-01-24 11:19

So far in the API (v3.9.2), I see a mention of TouchRippleProps for ButtonBase for https://material-ui.com/api/button-base/

My but

2条回答
  •  春和景丽
    2021-01-24 11:38

    It doesn't appear animations other than the ripple are supported. However, you can create something like this TriggeredAnimation wrapper component:

    class TriggeredAnimationWrapper extends Component {
      constructor(...args) {
        super(...args)
        this.state = {
          wasClicked: false
        }
        this.triggerAnimation = this.triggerAnimation.bind(this)
      }
    
      triggerAnimation(callback) {
        return (...args) => {
          this.setState(
            {wasClicked: true}, 
            () => requestAnimationFrame(()=>this.setState({wasClicked: false}))
          )
          if (callback) return callback(...args)
        }
      }
    
      render() {
        const {
          triggerAnimation,
          props: {
            children
          },
          state: {
            wasClicked
          }
        } = this.props
        return children({wasClicked, triggerAnimation})
      }
    }
    

    And use it like this:

    ({wasClicked, triggerAnimation}) => (
      

    Then, you can create a css animation and change the background when the click class is present.

提交回复
热议问题