微信小程序之MaterialDesign(二)--view的ripple、reveal效果

ripple: 水涟漪效果 reveal: 揭露效果
ripple: 主要是两个view的叠加,设置最上层view的border-radius为100%,背景设置半透明。最下层view设置点击事件,并记录点击时的绝对坐标与相对坐标,坐标运算之后,同时动态改变最上层view的top与left,即可实现手指点击哪里,最上层view就会出现在那里。 最后实现涟漪,通过对上层view进行放大动画即可。
reveal:是ripple的变形,减慢动画执行时间,同时保持两层view的背景色动态保持一致即可。
JS:

    onClickPaper:function(e){
      var that = this
      var offLeft = e.currentTarget.offsetLeft
      var offTop = e.currentTarget.offsetTop
      var pageX = e.changedTouches[0].pageX
      var pageY = e.changedTouches[0].pageY
      console.log(pageX-offLeft-25)
      console.log(pageY-offTop-25)

      this.setData({
          ripple_style:'top:'+(pageY-offTop-25)+'px ; left:'+(pageX-offLeft-25)+'px ;-webkit-animation: ripple 0.4s linear; animation: ripple 0.4s linear;'

      })
      setTimeout(function(){
        that.setData({
          ripple_style:' -webkit-animation: ripple-reset 0s linear; animation: ripple-reset 0s linear;'

      })
      },300)

    //   do something

  }

CSS:


    .v-content {
      background-color: deepskyblue;
      margin-top: 20rpx;
      width: 40%;
      height: 50px;
      overflow: hidden;
      box-shadow: 2px 2px 2px 1px lightgrey;
      border-radius: 2px;
      text-align: center;
      position: relative;
      margin-bottom: 80rpx;
    }

    .ripple {
      background-color: rgba(0, 0, 0, 0.15);
      border-radius: 100%;
      height: 50px;
      width: 50px;
      position: absolute;

    }
     @-webkit-keyframes ripple {
      100% {
        -webkit-transform: scale(15);
        transform: scale(15);
      }
    }
    @keyframes ripple {
      100% {
        -webkit-transform: scale(15);
        transform: scale(15);
      }
    }

效果图:

源码:https://github.com/jeffer0323/We-MaterialDesign

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值