当前位置:首页 > uni-app

uniapp 种树界面

2026-03-05 04:19:18uni-app

uniapp 种树界面设计思路

界面布局与功能模块 采用绿色为主色调,顶部导航栏显示“环保种树”标题,底部Tab栏包含“首页”“任务”“我的”等入口。主界面分为三部分:用户当前能量值/树苗成长进度、每日任务列表、好友排行榜。

树苗成长可视化 通过Lottie动画实现树苗从种子到成树的动态效果,能量值每达到一定阈值触发成长阶段变化。进度条采用环形设计,中央显示当前能量值/目标值(如“1200/5000”)。

任务系统交互设计 任务卡片包含图标(如水滴、太阳)、任务描述(“步行5000步”)和能量奖励值(+50)。完成的任务显示绿色对勾,未完成的任务带有点击触发按钮。长按任务卡片弹出详情弹窗。

uniapp 种树界面

关键代码实现示例

进度条组件(vue文件)

<view class="progress-container">
  <lottie :animationData="treeGrowthAnimation" :loop="false" 
          :progress="energyProgress" class="lottie-animation"/>
  <text class="energy-text">{{currentEnergy}}/{{targetEnergy}}</text>
</view>

样式定义

uniapp 种树界面

.progress-container {
  position: relative;
  width: 300rpx;
  height: 300rpx;
}
.energy-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-size: 32rpx;
  color: #4a8c4a;
}

数据绑定逻辑

export default {
  data() {
    return {
      currentEnergy: 1200,
      targetEnergy: 5000,
      treeGrowthAnimation: require('@/static/lottie/tree.json')
    }
  },
  computed: {
    energyProgress() {
      return Math.min(this.currentEnergy / this.targetEnergy, 1)
    }
  }
}

性能优化建议

  1. 使用image标签的lazy-load属性延迟加载非可视区图片
  2. 对树苗动画使用v-if替代v-show减少内存占用
  3. 能量值变化时采用CSS过渡动画而非频繁重绘
  4. 使用uni.preloadPage预加载任务详情页面

扩展功能实现

好友浇水互动 通过WebSocket实现实时通知,当好友帮忙浇水时触发振动反馈(uni.vibrate())和弹窗提示。浇水记录存储在云数据库的watering_log集合中,包含时间戳和用户ID。

成就系统设计onShow生命周期中检查成就解锁条件,如:

checkAchievement() {
  const totalEnergy = this.$store.state.totalEnergy
  if(totalEnergy > 10000 && !this.achievements.fullGrown) {
    uni.showModal({
      title: '成就解锁',
      content: '获得【参天大树】成就!'
    })
  }
}

标签: 界面uniapp
分享给朋友:

相关文章

uniapp样式库

uniapp样式库

uniapp 常用样式库推荐 uView UI uView 是专为 uniapp 设计的多端兼容 UI 框架,提供丰富的组件和工具类。支持 Vue3 组合式 API,内置主题定制功能,常用于快速构建企…

uniapp隐藏右侧滚动条

uniapp隐藏右侧滚动条

隐藏右侧滚动条的方法 在UniApp中隐藏右侧滚动条可以通过CSS样式实现,适用于H5、小程序等平台。以下是几种常见的方法: 全局样式设置 在App.vue的全局样式中添加以下CSS代码,适用于所有…

uniapp实现标题栏渐变

uniapp实现标题栏渐变

实现标题栏渐变的方法 在UniApp中实现标题栏渐变效果,可以通过修改页面的导航栏样式或使用自定义导航栏来实现。以下是几种常见的方法: 方法一:使用原生导航栏渐变 通过修改pages.json中的…

uniapp可以用vant吗

uniapp可以用vant吗

uniapp中使用Vant组件库的可行性 Vant是专为Vue.js设计的移动端组件库,而uniapp是一个跨平台开发框架。两者并非原生兼容,但可通过以下方式实现部分Vant组件的使用。 方法一:使…

uniapp斑马

uniapp斑马

uniapp 斑马相关问题解答 uniapp 斑马打印机连接与使用 uniapp 支持通过蓝牙或网络连接斑马打印机,需要借助原生插件或第三方 SDK。以下为常见方法: 蓝牙连接方式 安装 uni-…

uniapp 头条

uniapp 头条

uniapp 适配今日头条(字节跳动小程序)的方法 环境配置 确保HBuilderX版本在2.7.0以上,manifest.json中勾选"字节跳动小程序"平台。在开发者工具中配置正确的AppID和项…