小程序实现点击动画效果

今天接到一个小程序优化需求,要实现一个点击的动画效果
在这里插入图片描述
考虑实现方法,使用csstransition属性来进行实现,点击的时候给css新增一个active属性,就能实现这个效果了

// html 
<view class="list-box">
 <view class="list {{item.check ? 'active' : ''}}" wx:for="{{listOne}}" data-id="{{item.id}}" wx:key="index" bindtap="bindClick">
     <view class="point">
         <image src="../../../img/sure-icon.png" mode="widthFix"/>
     </view>
     {{item.name}}
 </view>
</view>
// js
data: {
	listOne: [
      { id: 1, name: '弱音频', check:false},
      { id: 2, name: '中音频', check:false},
      { id: 3, name: '强音频', check:false}
    ]
}

// 点击方法
 bindClick (e) {
   let id = e.currentTarget.dataset.id
   let listOne = this.data.listOne.map(item => {
     if(item.id == id ){
       item.check = true
       // 选中以后需要执行的方法
     }else {
       item.check = false
     }
     return item
   }) 
   this.setData({listOne})
 },
// css 主要css是在active的位置,其余的可以根据设计稿样式自己改
.list-box{
    width: 660rpx;
    margin: 0 auto;
    margin-top: 71rpx;
    .list{
        height: 100rpx;
        background-color: #ffffff;
	    box-shadow: 0rpx 5rpx 9rpx 0rpx rgba(79, 90, 103, 0.09);
        border-radius: 16rpx;
        border: 3px solid transparent;
        transition: all 0.4s;
        position: relative;
        text-align: center;
        line-height: 100rpx;
        font-family: Source Han Sans CN;
        font-size: 36rpx;
        font-weight: bold;
        color: #0f2655;
        margin-bottom: 33rpx;
    }    
      .point {
        position: absolute;
        background: #8bc63e;
        width: 36rpx;
        height: 36rpx;
        bottom: 0;
        right: 0;
        border-radius: 8px 0 0 0px;
        transition: all 0.4s;
        opacity: 0;
    image{
        display: none;
    }
  }
    .list.active {
        border: 3px  solid #8bc63e;
    // box-shadow:0px 6px 10px 0px rgba(0, 0, 0, 0.3);
  }
  .list.active .list-title{
        transition: all 0.4s;
        color: #8bc63e;
  }
  .list.active .list-bold{
        transition: all 0.4s;
        color: #8bc63e;
    }
  .list.active  .point {
        opacity: 1;
        position: absolute;
        background: #8bc63e;
        width: 36rpx;
        height: 36rpx;
        bottom: 0;
        right: 0;
        border-radius: 8px 0 0 0px;
  }
  .list.active  .point image{
        // transition: all 0.3s;
        display: block;
        width: 19rpx;
        height: 14rpx;
        margin-top: 14rpx;
        margin-left: 12rpx;
  }
}

最后就OJBK了,提交代码,下班~

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
小程序中的 view 点击效果是指当用户点击一个 view 元素时,该元素会产生可视化的反馈效果,以指示用户已成功点击该元素。小程序支持多种点击效果,以下是一些常见的点击效果示例: 1. 设置背景色变化效果:当用户点击 view 元素时,可以通过改变该元素的背景色来实现点击效果。可以使用 CSS 的`:active`伪类或者通过给 view 元素添加特定的类名来定义点击时的背景色样式。 2. 设置边框变化效果:当用户点击 view 元素时,可以通过改变该元素的边框样式或者边框颜色来实现点击效果。类似于设置背景色变化效果,可以使用 CSS 的`:active`伪类或者给 view 元素添加特定的类名来定义点击时的边框样式。 3. 设置动画效果:当用户点击 view 元素时,可以通过添加动画效果来提供更加生动的点击反馈。可以使用小程序动画 API,在点击事件处理函数中定义一组动画效果,并将其应用到 view 元素上,例如改变元素的位置、大小、透明度等。 4. 设置点击态图片:当用户点击 view 元素时,可以通过切换图片来实现点击效果。可以在点击事件处理函数中使用`setData`更新 view 元素的图片路径,从而达到切换点击态图片的效果小程序提供了丰富的样式和动画 API,开发者可以根据需求选择合适的点击效果,通过添加视觉反馈方式来提升小程序的用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值