uni-app 实现阅读条例查看完才能点击下一步功能

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

uni-app 实现阅读条例查看完才能点击下一步功能

1 回复

要在uni-app中实现阅读条例查看完才能点击下一步功能,可以通过监听用户滚动事件以及检测用户是否阅读完所有内容来实现。以下是一个简单的实现代码案例:

1. 布局文件 (example.vue)

<template>
  <view class="container">
    <scroll-view
      class="scroll-content"
      :scroll-y="true"
      @scrolltolower="onScrollToLower"
      ref="scrollView"
    >
      <view class="terms-content">
        <!-- 条例内容,可以是静态文本或动态加载 -->
        <p v-for="(paragraph, index) in terms" :key="index">{{ paragraph }}</p>
      </view>
    </scroll-view>
    <button
      class="next-button"
      :disabled="!isReadComplete"
      @click="onNextClick"
    >
      下一步
    </button>
  </view>
</template>

<script>
export default {
  data() {
    return {
      terms: [
        '第一条:内容示例。',
        '第二条:更多内容示例。',
        // 添加更多条例内容
      ],
      isReadComplete: false,
      scrollHeight: 0,
      currentScrollY: 0,
    };
  },
  mounted() {
    this.$nextTick(() => {
      this.scrollHeight = this.$refs.scrollView.scrollHeight;
      this.$refs.scrollView.addEventListener('scroll', this.onScroll);
    });
  },
  beforeDestroy() {
    this.$refs.scrollView.removeEventListener('scroll', this.onScroll);
  },
  methods: {
    onScroll(e) {
      this.currentScrollY = e.detail.scrollTop;
      this.checkReadComplete();
    },
    checkReadComplete() {
      this.isReadComplete = this.currentScrollY >= this.scrollHeight - 50; // 接近底部时认为阅读完成
    },
    onScrollToLower() {
      // 可选:当用户滚动到底部时也可以执行一些操作
    },
    onNextClick() {
      // 执行下一步操作
      console.log('点击了下一步');
      // 跳转到下一页面或执行其他逻辑
    },
  },
};
</script>

<style>
.container {
  padding: 20px;
}
.scroll-content {
  height: 300px; /* 根据需要调整高度 */
  border: 1px solid #ccc;
  margin-bottom: 20px;
}
.terms-content {
  padding: 10px;
}
.next-button {
  background-color: #007aff;
  color: #fff;
  border: none;
  padding: 10px 20px;
  border-radius: 5px;
}
</style>

2. 解释

  • 布局:使用<scroll-view>组件来包裹条例内容,并监听其滚动事件。
  • 数据terms数组保存条例内容,isReadComplete表示是否阅读完成,scrollHeightcurrentScrollY用于检测滚动位置。
  • 事件监听:在mounted生命周期中,添加滚动事件监听器,并在beforeDestroy中移除监听器。
  • 逻辑onScroll方法更新当前滚动位置,并调用checkReadComplete方法检测是否阅读完成(通过比较当前滚动高度和总滚动高度)。
  • 按钮状态:按钮的disabled属性根据isReadComplete的值动态设置。

这样,当用户滚动到底部时,按钮将被激活,允许用户点击“下一步”。

回到顶部