uni-app app端 求个uni-app+vue3版的 用的组件是swiper 像驾考宝典那种的答题左右滑动组件 可有偿

发布于 1周前 作者 h691938207 来自 Uni-App

uni-app app端 求个uni-app+vue3版的 用的组件是swiper 像驾考宝典那种的答题左右滑动组件 可有偿

8 回复

没有个截图什么的?


类似于驾考宝典答题的效果,左右滑动切换题目 还要不卡,接口是分页的

如果一把请求无限数据,渲染还不卡的要不?

我的后端就是主管,他不让改成请求全部的数据, 只让 分页来 传页数还有一页多少个数据这种,还要不卡

不过我也很好奇,后端返回所有数据,我这边做接收!这样也会卡吗?

这个app上可以,不过 不适合我这个项目的组件 是 单页面左右滑动的那种! 感谢你的回复! ! !

当然,我可以为你提供一个基于uni-app和Vue 3的swiper组件示例,这个示例将模拟驾考宝典的答题左右滑动功能。以下是一个简单的实现代码示例:

1. 安装依赖

首先,确保你已经安装了uni-app的CLI工具,并且创建了一个新的uni-app项目。如果还没有,请按照官方文档进行安装和初始化。

2. 项目结构

在项目的pages目录下创建一个新的页面,比如exam.vue

3. exam.vue 文件内容

<template>
  <view class="container">
    <swiper
      class="swiper"
      :autoplay="false"
      :interval="3000"
      :duration="500"
      circular
      indicator-dots
      @change="onSwiperChange"
    >
      <swiper-item v-for="(question, index) in questions" :key="index">
        <view class="swiper-item">
          <text>{{ question.title }}</text>
          <radio-group @change="onRadioChange(index)">
            <label v-for="(option, optionIndex) in question.options" :key="optionIndex">
              <radio :value="option.value">{{ option.text }}</radio>
            </label>
          </radio-group>
        </view>
      </swiper-item>
    </swiper>
    <button @click="prevQuestion">上一题</button>
    <button @click="nextQuestion">下一题</button>
  </view>
</template>

<script>
export default {
  data() {
    return {
      currentIndex: 0,
      questions: [
        {
          title: 'Question 1',
          options: [
            { text: 'A', value: 'a' },
            { text: 'B', value: 'b' },
            { text: 'C', value: 'c' },
            { text: 'D', value: 'd' },
          ],
        },
        // 更多题目...
      ],
    };
  },
  methods: {
    onSwiperChange(event) {
      this.currentIndex = event.detail.current;
    },
    onRadioChange(index, event) {
      this.questions[index].selected = event.detail.value;
    },
    prevQuestion() {
      this.currentIndex = (this.currentIndex - 1 + this.questions.length) % this.questions.length;
      this.$refs.swiper.swiperTo(this.currentIndex, 500, false);
    },
    nextQuestion() {
      this.currentIndex = (this.currentIndex + 1) % this.questions.length;
      this.$refs.swiper.swiperTo(this.currentIndex, 500, false);
    },
  },
};
</script>

<style>
/* 样式可以根据需要调整 */
.container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100vh;
}
.swiper {
  width: 100%;
  height: 80vh;
}
.swiper-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
}
button {
  margin: 10px;
}
</style>

4. 运行项目

确保所有文件保存后,运行npm run dev:%PLATFORM%(%PLATFORM%替换为实际平台,如mp-weixin)来启动项目。

这个示例代码展示了如何使用uni-app和Vue 3的swiper组件来实现左右滑动答题的功能,并包含了基本的样式和事件处理。你可以根据实际需求进行进一步的定制和优化。

回到顶部