npm install vue-scroll-motion
import VueScrollMotion from 'vue-scroll-motion'
<template>
  <VueScrollMotion
    disable_multiple_animation
    :animation="[
      { opacity: 0, translate: '0 100', rotate: 180 },
      { opacity: 1, translate: '0 0', rotate: 0 },
      { opacity: 0, translate: '0 -100', rotate: -180 },
    ]"
  >
    ...
  </VueScrollMotion>
</template>
<script lang="ts">
import { defineComponent } from "vue"
import VueScrollMotoin from 'vue-scroll-motion'
export default defineComponent({
  components: {
    VueScrollMotion,
  },
})
</script>
| option | description | type | default | 
|---|---|---|---|
| animation | Reference | Array<AnimationType> | |
| disable_multiple_animation | Prevent animations from running at the same time | boolean | false | 
| height | Section height for scroll percentage. | number | 100(vh) | 
[
  { opacity: 0, translate: '0 100' },
  { opacity: 1, translate: '0 0' },
  { opacity: 0, translate: '0 -100' },
]
| scroll percentage | description | 
|---|---|
| 0% ~ 50% scroll | opacity0to1andtranslateY100to0 | 
| 50% ~ 100% scroll | opacity1to0andtranslateY0to-100 | 
If the component is located at the top of the document, the scroll percentage starts at 50%.
opacity, translate, rotate, scale
Support for custom animation features will be provided
- (!) Vue3
- Chrome >= 104
- Safari >= 14.1
- IOS Safari >= 14.5
