当前位置:首页 > uni-app

uniapp 种树界面

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

uniapp 种树界面设计思路

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

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

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

关键代码实现示例

进度条组件(vue文件)

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

样式定义

.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生命周期中检查成就解锁条件,如:

uniapp 种树界面

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

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

相关文章

uniapp教程

uniapp教程

uniapp 基础介绍 uniapp 是一个基于 Vue.js 的跨平台开发框架,支持一次开发,多端发布(如微信小程序、H5、App、快应用等)。其核心优势在于代码复用率高,学习成本低,适合快速构建多…

uniapp安装uview

uniapp安装uview

安装uView到UniApp项目 方法一:通过npm安装(推荐) 确保项目已初始化npm,在项目根目录执行以下命令: npm install uview-ui 在main.js文件中引入并注册uV…

uniapp使用axios无法请求

uniapp使用axios无法请求

uniapp中使用axios请求问题解决方案 在uniapp中使用axios可能会遇到跨域、请求失败或兼容性问题。以下是常见原因及解决方法: 检查axios安装与引入 确保已正确安装axios:…

base64转换方法uniapp

base64转换方法uniapp

Base64 转换方法(UniApp) 在 UniApp 中实现 Base64 编码和解码,可以通过原生 JavaScript 的 btoa 和 atob 方法,或使用第三方库如 base64-js。…

uniapp 目录

uniapp 目录

uniapp 目录结构 uniapp 的目录结构遵循 Vue.js 项目的规范,同时包含一些特有的文件和目录。以下是典型的 uniapp 项目目录结构及其说明: project-name/ ├──…

uniapp审批

uniapp审批

uniapp审批流程实现 在uniapp中实现审批功能,通常需要结合前端界面和后端逻辑。以下是几种常见的实现方式: 前端界面设计 使用uniapp的组件和API构建审批界面,包括表单提交、审批列表展…