当前位置:首页 > uni-app

uniapp实现摇骰子

2026-03-05 09:21:18uni-app

实现摇骰子的基本思路

通过随机数生成骰子点数,结合动画效果模拟摇骰子的过程,最终显示结果。

页面结构与样式

pages 目录下新建页面(如 dice),模板部分添加骰子容器和按钮:

<template>
  <view class="container">
    <view class="dice" :class="{'shake': isShaking}">{{ diceValue }}</view>
    <button @click="rollDice">摇骰子</button>
  </view>
</template>
<style>
.dice {
  width: 100px;
  height: 100px;
  border: 2px solid #333;
  border-radius: 10px;
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: 40px;
  margin: 50px auto;
}
.shake {
  animation: shake 0.5s;
}
@keyframes shake {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(-10deg); }
  50% { transform: rotate(10deg); }
  75% { transform: rotate(-10deg); }
  100% { transform: rotate(0deg); }
}
</style>

逻辑实现

script 部分定义数据和方法:

export default {
  data() {
    return {
      diceValue: 1,
      isShaking: false
    };
  },
  methods: {
    rollDice() {
      this.isShaking = true;
      setTimeout(() => {
        this.diceValue = Math.floor(Math.random() * 6) + 1;
        this.isShaking = false;
      }, 500);
    }
  }
};

优化方向

  1. 动画增强:使用 CSS 或 uni.createAnimation 实现更复杂的动画效果。
  2. 音效:通过 uni.innerAudioContext 添加摇骰子音效。
  3. 多骰子:扩展为多个骰子,通过数组管理点数。

多骰子实现示例

修改数据和方法:

data() {
  return {
    diceValues: [1, 1],
    isShaking: false
  };
},
methods: {
  rollDice() {
    this.isShaking = true;
    setTimeout(() => {
      this.diceValues = this.diceValues.map(() => Math.floor(Math.random() * 6) + 1);
      this.isShaking = false;
    }, 500);
  }
}

模板调整为遍历 diceValues 显示多个骰子。

uniapp实现摇骰子

注意事项

  • 动画时间需与随机数生成时机匹配,避免动画未结束就显示结果。
  • 真机调试时部分 CSS 动画可能需加厂商前缀(如 -webkit-)。

标签: 骰子uniapp
分享给朋友:

相关文章

uniapp实名认证

uniapp实名认证

uniapp实名认证实现方法 使用uniCloud实名认证插件 uniapp官方提供了uniCloud的实名认证插件,可快速集成到项目中。插件支持身份证识别、活体检测等功能,需在uniCloud控制台…

精通uniapp

精通uniapp

掌握UniApp的基础知识 UniApp是一个基于Vue.js的跨平台开发框架,支持一次开发多端部署(如H5、小程序、App等)。核心概念包括Vue语法、组件化开发、条件编译(针对不同平台适配)以及U…

uniapp get

uniapp get

uniapp 获取数据的方法 在 uniapp 中获取数据可以通过多种方式实现,包括 API 请求、本地存储、页面传参等。以下是一些常见的方法: API 请求获取数据 使用 uni.request…

uniapp yuv

uniapp yuv

YUV 格式在 UniApp 中的应用 在 UniApp 中处理 YUV 格式数据通常涉及视频编解码、图像处理或摄像头数据采集。YUV 是一种颜色编码系统,常用于视频传输和图像处理,与 RGB 格式相…

uniapp $on

uniapp $on

uniapp $on 方法详解 $on 是 UniApp 中用于监听全局事件的 API,常用于跨页面或跨组件通信。它基于 Vue 的事件机制,允许在全局范围内触发和监听自定义事件。 基本语法 uni…

uniapp探探

uniapp探探

uniapp实现探探滑动卡片效果 探探的滑动卡片效果主要包含卡片堆叠、左右滑动操作、动画反馈等功能。在uniapp中可以通过以下方式实现类似交互: 使用swiper组件实现基础滑动 uniapp的s…