微信小程序中实现某个样式值setData改变时从350rpx到200rpx的平滑过渡效果

方案一:使用 CSS Transition(推荐简单场景)

WXSS

css 复制代码
/* 在对应组件的WXSS中添加 */
.transition-effect {
  transition: all 0.4s ease-in-out;
  will-change: bottom; /* 启用GPU加速 */
}

WXML

html 复制代码
<!-- 修改后的WXML -->
<view 
  class="transition-effect"
  style="position: absolute;bottom: {{refreshBottomHeight}}rpx;left: 50%;transform: translateX(-50%);" 
  bindtap="rightBtn">
  <!-- 内部内容保持不变 -->
</view>

方案二:使用小程序动画API(推荐复杂动画)

JS

javascript 复制代码
// 在组件/页面的JS中
Page({
  data: {
    animationData: {}
  },

  // 初始化动画
  onReady() {
    this.animation = wx.createAnimation({
      duration: 400,       // 动画时长
      timingFunction: 'ease-out', // 贝塞尔曲线
      delay: 0
    })
  },

  // 更新位置的方法
  updatePosition(newHeight) {
    this.animation.bottom(newHeight + 'rpx').step()
    this.setData({
      animationData: this.animation.export()
    })
  }
})

WXMl

html 复制代码
<!-- 修改后的WXML -->
<view 
  animation="{{animationData}}"
  style="position: absolute;left: 50%;transform: translateX(-50%);" 
  bindtap="rightBtn">
  <!-- 内部内容保持不变 -->
</view>

方案对比

特性 CSS Transition 小程序动画API
实现难度 ⭐(简单) ⭐⭐(需要API调用)
性能 ⭐⭐⭐(GPU加速) ⭐⭐(部分机型有优化)
控制精度 基于样式变化 可编程控制
兼容性 全平台支持 需要基础库2.9.0+
复杂动画支持 仅支持简单过渡 支持多属性复合动画
相关推荐
hello kitty w2 小时前
3.小程序方法的封装
javascript·小程序
蓝色心灵-海3 小时前
数字化家谱管理实践:基于微信小程序的家族信息整理方案(宗源智谱)族谱,家谱管理
小程序
WX:ywyy67983 小时前
从0到1:付费短剧小程序全栈定制开发实战与避坑指南
微信·小程序·短剧小程序开发·短剧系统开发·短剧app开发·短剧平台开发·短剧平台搭建
笨笨狗吞噬者4 小时前
【uniapp】小程序端解决分包的uni_modules打包后产物进入主包中的问题
前端·微信小程序·uni-app
天空属于哈夫克35 小时前
Java 开发|企微外部群主动发送小程序消息实战
开发语言·python·小程序·自动化·企业微信·rpa
焦糖玛奇朵婷6 小时前
做盲盒小程序,如何少走弯路?
数据库·程序人生·小程序·开源软件·软件需求
玛雅牛牛6 小时前
商城小程序实用度多家对比+新手友好款
大数据·小程序
CHU7290356 小时前
货运物流APP前端交互创新:以用户为中心重构运输服务全链路
java·前端·小程序·重构
幽络源小助理6 小时前
小程序源码分享:模拟人生游戏源码
微信小程序·游戏源码