抛物线动画
用法
npm i --save e-flyjs
<template>
<div class="fly-demo">
<div class="list">
<div class="list-item" @click="flyRun" v-for="i in 50" :key="i">
项{{i}}s
</div>
</div>
<div id="tar" class="tar">目标</div>
<span id="dot" class="dot"></span>
</div>
</template>
<script>
import Fly from 'e-flyjs'
export default {
name: 'Fly_demo',
methods: {
flyRun(e) {
const $tar = document.querySelector('#tar')
const $dot = document.querySelector('#dot')
let flyInstance = new Fly({
el: e.target,
targetEl: $tar,
flyEl: $dot,
duration: 600,
stop: function() {
flyInstance = null
},
})
flyInstance.start()
}
}
}
</script>
<style scoped>
.fly-demo {
position: relative;
}
.list {
display: flex;
flex-wrap: wrap;
width: 20vw;
}
.list-item {
width: 60px;
height: 60px;
color: #787878;
text-align: center;
line-height: 60px;
border-radius: 60px;
background: #d7e1ff;
will-change: auto;
transition-timing-function: cubic-bezier(0.16, 0.72, 0.90, 0.22);
}
.tar {
position: fixed;
right: 10px;
bottom: 20vh;
width: 80px;
height: 80px;
line-height: 80px;
text-align: center;
border: 1px solid #787878;
}
.dot {
position: fixed;
opacity: 0;
width: 20px;
height: 20px;
border-radius: 20px;
background: #f00;
}
</style>