当前位置:首页 > uni-app

uniapp实现摇骰子

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

实现摇骰子的基本思路

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

页面结构与样式

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

uniapp实现摇骰子

<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 部分定义数据和方法:

uniapp实现摇骰子

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 显示多个骰子。

注意事项

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

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

相关文章

丸子uniapp

丸子uniapp

丸子UniApp简介 丸子UniApp是一个基于UniApp框架开发的移动应用解决方案,通常用于快速构建跨平台应用(如微信小程序、H5、Android/iOS等)。其核心特点是利用UniApp的“一次…

uniapp擎

uniapp擎

uniapp 引擎简介 uniapp 是一个基于 Vue.js 的开发框架,允许开发者使用一套代码同时构建跨平台应用(如 iOS、Android、H5、小程序等)。其核心引擎负责将 Vue 语法转换为…

uniapp yuv

uniapp yuv

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

uniapp 录像

uniapp 录像

uniapp 录像功能实现 在uniapp中实现录像功能可以通过调用uni-app的API或结合第三方插件完成。以下是常见的实现方法: 使用uni.chooseVideo方法 uni.choose…

uniapp番号

uniapp番号

关于“uniapp番号”这一搜索词,可能存在理解偏差或表述不明确的情况。以下分方向提供相关信息: Uniapp框架简介 Uniapp是一个基于Vue.js的跨平台开发框架,支持编译到iOS、And…

uniapp有用

uniapp有用

Uniapp 的优势 Uniapp 是一款基于 Vue.js 的跨平台开发框架,支持一次开发,多端发布,适用于 iOS、Android、Web、小程序等多个平台。其核心优势包括: 跨平台兼容性:…