原生js+css 完成 material design 点击结果

近来想要在按钮上增加material design的点击结果,看了看muse-ui,纯真的想要这类结果,而要引入一些不必要的内容以为不划算,然后本身着手造了个轮子。
项目地点:github

上传不了gif图只能用 JSFiddle了: JSFiddle结果

Import using script tag

<link rel="stylesheet" href="./ripple.css" charset="utf-8">
<script src="./ripple.js"></script>

运用

    <button class="md-button">笔墨</button>
    new Ripple({
            cName: 'md-button',
            color: 'red',
            time: '0.5s',
            MaxNum: 5
        })

只要在<button>内增加 class=’className’ 而且在 Ripple()内传入{cName: ‘className’},便能够完成水波纹结果。<button> 的position将会被设置为relative

设置参数

OptionDescription
cNameelement的className,默以为 “md-button”
r水波纹最小半径,不传此参数则为自动盘算
color水波纹色彩 默以为:rgba(0, 0, 0, 0.3)
timeanimation的时候 默以为:0.5s
MaxNum水波纹的最大数目 默以为:5
center水波纹的圆心。默以为:false
zIndex设置z-index 默以为:null,当水波纹被掩盖时,能够运用此参数

完成思绪

  1. 猎取指定class 的element,并增加点击事宜监听
  2. 为每个element建立一个子元素<div class=’wrapper’>.用来寄存<span>
  3. element点击时 建立animation须要的<span>、增加动画款式、增加 animationend 事宜监听,在动画完毕后移除 相干款式。
  4. 屡次点击时,建立多个<span>用来完成多个水波纹,而且对<span>重复运用。
  5. 当末了一个动画完毕时,而且鼠标从element移除时,删除多个<span>
    原文作者:苍穹青空
    原文地址: https://segmentfault.com/a/1190000009779958
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞