uni-app scrollReveal 滚动过渡显示

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

uni-app scrollReveal 滚动过渡显示

https://scrollrevealjs.org/

1 回复

在处理uni-app中的滚动过渡显示功能时,你可以利用scroll-view组件和一些自定义的动画效果来实现类似scrollReveal库的功能。虽然uni-app没有直接集成scrollReveal库,但我们可以通过CSS动画和JavaScript事件监听来实现类似的滚动显示动画。

以下是一个简单的示例,展示如何在uni-app中实现滚动过渡显示:

  1. 页面布局(index.vue:
<template>
  <view>
    <scroll-view scroll-y="true" @scroll="onScroll" style="height: 100vh;">
      <view v-for="(item, index) in items" :key="index" :class="['item', { revealed: item.revealed }]">
        {{ item.text }}
      </view>
    </scroll-view>
  </view>
</template>

<script>
export default {
  data() {
    return {
      items: Array.from({ length: 20 }, (_, i) => ({ text: `Item ${i + 1}`, revealed: false }))
    };
  },
  methods: {
    onScroll(event) {
      const scrollTop = event.detail.scrollTop;
      this.items.forEach((item, index) => {
        const itemTop = index * 100; // Assuming each item is 100px tall
        item.revealed = scrollTop > itemTop - 50; // Reveal when 50px into view
      });
    }
  }
};
</script>

<style>
.item {
  height: 100px;
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.5s, transform 0.5s;
}

.item.revealed {
  opacity: 1;
  transform: translateY(0);
}
</style>
  1. 说明:
    • 模板部分:使用scroll-view组件来创建可滚动的视图区域,并监听scroll事件。
    • 数据部分:创建一个包含多个项目的数组,每个项目有一个text字段和一个revealed字段,用于标记是否已显示。
    • 方法部分:在onScroll方法中,根据滚动位置更新每个项目的revealed状态。
    • 样式部分:使用CSS定义初始状态(未显示)和过渡后的状态(已显示),通过opacitytransform属性实现平滑过渡。

这个示例通过监听滚动事件并根据滚动位置动态更新项目的显示状态,实现了滚动过渡显示的效果。你可以根据需要调整动画属性、项目高度和触发显示的条件,以满足特定的设计要求。

回到顶部