更新记录

1.0.0(2025-08-09) 下载此版本

1.0.0


平台兼容性

uni-app(4.07)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - - - -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
- - - - - - - - - -

其他

多语言 暗黑模式 宽屏模式

temp-circular-turntable 圆形滚盘

采用 uniapp 纯css实现的一款图片、头像圆形滚盘示例组件模板, 支持 vue2、vue3,适配H5、微信小程序(其他小程序未试过,可自行尝试)

props 属性

options

选项数组,必须具备 image 字段

options: {
  type: Array,
  default: () => [
    { image: "https://randomuser.me/api/portraits/lego/3.jpg" },
    { image: "https://randomuser.me/api/portraits/lego/1.jpg" },
    { image: "https://randomuser.me/api/portraits/lego/2.jpg" },
    { image: "https://randomuser.me/api/portraits/lego/4.jpg" },
    { image: "https://randomuser.me/api/portraits/lego/5.jpg" },
    { image: "https://randomuser.me/api/portraits/lego/6.jpg" },
    { image: "https://randomuser.me/api/portraits/lego/7.jpg" },
  ],
},

circleRadius

圆盘半径,单位rpx

circleRadius: {
  type: Number,
  default: 150,
},

circleCenter

圆盘圆心坐标,单位rpx

circleCenter: {
  type: Number,
  default: 200,
},

imageSize

滚盘元素图片大小,单位rpx

imageSize: {
  type: Number,
  default: 60,
},

speed

旋转速度,单位ms

speed: {
  type: Number,
  default: 1,
},

使用示例

vue2 使用示例

<template>
  <view>
    <view style="padding: 10px">
      <view class="template-title">模板一:</view>
      <view style="width: 400px; height: 300px">
        <DemoTemplate :options="imageList"></DemoTemplate>
      </view>
    </view>
    <view style="padding: 10px">
      <view class="template-title">模板二:</view>
      <view style="width: 400px; height: 300px">
        <DemoTemplate
          :circle-radius="100"
          :circle-center="200"
          :image-size="50"
        ></DemoTemplate>
      </view>
    </view>
  </view>
</template>

<script>
import DemoTemplate from "./components/index.vue";

export default {
  components: {
    DemoTemplate,
  },
  data() {
    return {
      imageList: [
        {
          image: "https://randomuser.me/api/portraits/lego/3.jpg",
        },
        {
          image: "https://randomuser.me/api/portraits/lego/1.jpg",
        },
        {
          image: "https://randomuser.me/api/portraits/lego/2.jpg",
        },
        {
          image: "https://randomuser.me/api/portraits/lego/4.jpg",
        },
        {
          image: "https://randomuser.me/api/portraits/lego/5.jpg",
        },
        {
          image: "https://randomuser.me/api/portraits/lego/6.jpg",
        },
        {
          image: "https://randomuser.me/api/portraits/lego/7.jpg",
        },
        {
          image: "https://randomuser.me/api/portraits/lego/8.jpg",
        },
        {
          image: "https://randomuser.me/api/portraits/lego/9.jpg",
        },
        {
          image: "https://randomuser.me/api/portraits/lego/4.jpg",
        },
        {
          image: "https://randomuser.me/api/portraits/lego/4.jpg",
        },
      ],
    };
  },
};
</script>

<style scoped>
.template-title {
  font-weight: bold;
  font-size: 14px;
}
</style>

vue3 使用示例

<template>
  <view>
    <view style="padding: 10px">
      <view class="template-title">模板一:</view>
      <view style="width: 400px; height: 300px">
        <DemoTemplate :options="imageList"></DemoTemplate>
      </view>
    </view>
    <view style="padding: 10px">
      <view class="template-title">模板二:</view>
      <view style="width: 400px; height: 300px">
        <DemoTemplate
          :circle-radius="100"
          :circle-center="200"
          :image-size="50"
        ></DemoTemplate>
      </view>
    </view>
  </view>
</template>

<script setup>
import { ref } from "vue";
import DemoTemplate from "./components/index.vue";

const imageList = ref([
  { image: "https://randomuser.me/api/portraits/lego/3.jpg" },
  { image: "https://randomuser.me/api/portraits/lego/1.jpg" },
  { image: "https://randomuser.me/api/portraits/lego/2.jpg" },
  { image: "https://randomuser.me/api/portraits/lego/4.jpg" },
  { image: "https://randomuser.me/api/portraits/lego/5.jpg" },
  { image: "https://randomuser.me/api/portraits/lego/6.jpg" },
  { image: "https://randomuser.me/api/portraits/lego/7.jpg" },
  { image: "https://randomuser.me/api/portraits/lego/8.jpg" },
  { image: "https://randomuser.me/api/portraits/lego/9.jpg" },
  { image: "https://randomuser.me/api/portraits/lego/4.jpg" },
  { image: "https://randomuser.me/api/portraits/lego/4.jpg" },
]);
</script>

<style scoped>
.template-title {
  font-weight: bold;
  font-size: 14px;
}
</style>

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议