更新记录
1.0.1(2025-12-04) 下载此版本
lx-cubes 正方体组件
一个支持多平台(H5、微信小程序、支付宝小程序)的3D正方体组件,支持手势拖动旋转。
功能特性
平台兼容性
lx-cubes 正方体组件
一个支持多平台(H5、微信小程序、支付宝小程序)的3D正方体组件,支持手势拖动旋转。
功能特性
- 🎯 支持多平台:H5、微信小程序、支付宝小程序
- 🎮 支持手势拖动旋转
- 🎨 支持自定义每个面的颜色和内容
- ⚙️ 支持自动旋转
- 🎯 支持调整旋转速度和初始角度
- 📱 响应式设计
使用方法
基本用法
<template>
<view>
<lx-cubes :size="200" />
</view>
</template>
<script>
import lxCubes from '@/uni_modules/lx-cubes/lx-cubes.vue'
export default {
components: {
lxCubes
}
}
</script>
自定义内容
<template>
<view>
<lx-cubes :size="200">
<template #front>
<text>前面内容</text>
</template>
<template #back>
<text>后面内容</text>
</template>
<template #right>
<text>右面内容</text>
</template>
<template #left>
<text>左面内容</text>
</template>
<template #top>
<text>上面内容</text>
</template>
<template #bottom>
<text>下面内容</text>
</template>
</lx-cubes>
</view>
</template>
高级配置
<template>
<view>
<lx-cubes
:size="250"
:rotateX="-20"
:rotateY="30"
:rotateSpeed="0.8"
:autoRotate="true"
front-color="rgba(255, 99, 71, 0.8)"
back-color="rgba(135, 206, 235, 0.8)"
right-color="rgba(144, 238, 144, 0.8)"
left-color="rgba(255, 215, 0, 0.8)"
top-color="rgba(238, 130, 238, 0.8)"
bottom-color="rgba(255, 140, 0, 0.8)">
</lx-cubes>
</view>
</template>
Props
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| size | Number/String | 200 | 正方体大小(像素) |
| rotateX | Number/String | -20 | 初始X轴旋转角度 |
| rotateY | Number/String | 30 | 初始Y轴旋转角度 |
| rotateSpeed | Number | 0.5 | 旋转速度(0.1-2) |
| autoRotate | Boolean | false | 是否自动旋转 |
| autoRotateSpeed | Number | 0.5 | 自动旋转速度(0.1-5) |
| showBorder | Boolean | true | 是否显示边框 |
| borderColor | String | 'rgba(255, 255, 255, 0.3)' | 边框颜色 |
| frontColor | String | 'rgba(255, 99, 71, 0.8)' | 前面颜色 |
| backColor | String | 'rgba(135, 206, 235, 0.8)' | 后面颜色 |
| rightColor | String | 'rgba(144, 238, 144, 0.8)' | 右面颜色 |
| leftColor | String | 'rgba(255, 215, 0, 0.8)' | 左面颜色 |
| topColor | String | 'rgba(238, 130, 238, 0.8)' | 上面颜色 |
| bottomColor | String | 'rgba(255, 140, 0, 0.8)' | 下面颜色 |
插槽
| 插槽名 | 说明 |
|---|---|
| front | 前面内容 |
| back | 后面内容 |
| right | 右面内容 |
| left | 左面内容 |
| top | 上面内容 |
| bottom | 下面内容 |
组件方法
通过ref可以调用以下方法:
// 获取组件引用
const cube = this.$refs.cube
// 重置旋转角度
cube.resetRotation()
// 设置旋转角度
cube.setRotation(x, y) // x: X轴角度, y: Y轴角度
// 获取当前旋转角度
const rotation = cube.getRotation() // 返回 {x, y}
交互操作
移动端
- 触摸并拖动来旋转正方体
H5端
- 鼠标按下并拖动来旋转正方体
平台兼容性
| 平台 | 兼容性 | 说明 |
|---|---|---|
| H5 | ✅ 完全支持 | 支持鼠标和触摸拖动,完整功能 |
| 微信小程序 | ✅ 完全支持 | 优化触摸兼容性,完整功能 |
| 支付宝小程序 | ✅ 完全支持 | 完整功能支持 |
微信小程序优化
组件已针对微信小程序进行了特殊优化:
- 兼容性处理:添加了必要的厂商前缀和兼容性CSS
- 触摸事件优化:安全地处理触摸事件,避免报错
- 3D变换适配:使用微信小程序支持的3D变换方式
- 性能优化:移除可能导致性能问题的复杂动画
在微信小程序中使用时,组件会自动应用兼容性优化,确保正常运行。
技术实现
- 使用 CSS3
transform-style: preserve-3d实现3D效果 - 通过
touch事件和mouse事件实现拖动交互 - 使用条件编译确保多平台兼容性
- 支持插槽自定义每个面的内容
注意事项
- 在小程序中使用时,确保已开启3D变换支持
- 建议为每个面设置合适的背景色以增强3D效果
- 自动旋转功能在移动设备上可能会影响性能,请根据需要开启
- 组件大小建议设置在 100-400 像素之间以获得最佳显示效果
- 组件已包含参数验证,确保传入的值在合理范围内
- 支持自定义边框显示和边框颜色
- 内置多平台兼容性处理,包括微信小程序和支付宝小程序
新版本特性
v1.1.0
- ✅ 新增自动旋转速度控制
- ✅ 新增边框显示控制和自定义颜色
- ✅ 新增组件方法:重置、设置和获取旋转角度
- ✅ 增强参数验证,提高稳定性
- ✅ 优化移动端兼容性
- ✅ 改进插槽内容,支持更丰富的自定义内容
- ✅ 增强性能优化和错误处理
- ✅ 完善的JSDoc注释,提升开发体验
- ✅ 微信小程序深度兼容性优化
- ✅ 统一组件接口,简化使用方式
示例项目
项目中的 pages/index/index.vue 提供了完整的使用示例,包括:
- 基本使用方法
- 自定义内容插槽
- 控制按钮(自动旋转、重置角度)
- 美观的UI样式
可以直接运行项目查看效果。

收藏人数:
下载插件并导入HBuilderX
赞赏(0)
下载 1
赞赏 0
下载 11724778
赞赏 1818
赞赏
京公网安备:11010802035340号