开发了一个ripple effect组件

栏目: Android · 发布时间: 5年前

内容简介:目前来看网上的除了material-ui的ripple-effect效果很棒以外,其余的ripple组件都不够完美。所以开发了这个ripple effect组件,用svg实现,很容易使用,效果也很舒服。大家快来试试手,可以提需求或者pr,来支持更多的配置,顺便点个star。

目前来看网上的除了material-ui的ripple-effect效果很棒以外,其余的ripple组件都不够完美。

所以开发了这个ripple effect组件,用svg实现,很容易使用,效果也很舒服。

大家快来试试手,可以提需求或者pr,来支持更多的配置,顺便点个star。

地址

安装

yarn add 'dodo-ripple'
复制代码

使用

直接当作block使用的时候,会认为是一个普通的div。

import { RippleBlock } from 'dodo-ripple'

<RippleBlock className="btn">
  Click Here
</RippleBlock>
复制代码

也可以用装饰器的方式,但是只能装饰React Element。

import { withRipple } from 'dodo-ripple'

const Button = withRipple(
  <button className="btn">Click Here</button>
)
复制代码

如果只使用ripple的话会比较麻烦,需要通过ref组件然后手动触发createRipple,并且需要手动写点样式。

import { Ripple } from 'dodo-ripple'

class Button extends React.Component {
  $ripple = React.createRef()

  handleMouseDown = e => {
    this.$ripple.current.createRipple(e)
    this.props.onMouseDown && this.props.onMouseDown(e)
  }

  render() {
    const { children, className, ...rest } = this.props

    return (
      <button 
        {...rest}
        className={classnames('btn', 'do-ripple-block', className)} 
        onMouseDown={this.handleMouseDown} 
      >
        <span className="do-ripple-content">{children}</span>
        <Ripple ref={this.$ripple} rippleColor="#39f"/>
      </button>
    )
  }
}
复制代码

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Hit Refresh

Hit Refresh

Satya Nadella、Greg Shaw / HarperBusiness / 2017-9-26 / USD 20.37

Hit Refresh is about individual change, about the transformation happening inside of Microsoft and the technology that will soon impact all of our lives—the arrival of the most exciting and disruptive......一起来看看 《Hit Refresh》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

MD5 加密
MD5 加密

MD5 加密工具

html转js在线工具
html转js在线工具

html转js在线工具