scroll-list.vue
<template> <div class="scroll_box" :style="{ '--i': item == '.' ? 0 : item , '--delay': delay }" @animationend="isShow = false" > <div class="list_box" :class="{ animate: isShow }"> <div>pw_item == '.' ? '.' : '0'</div> <div v-for="num in 9">pw_ num </div> <div>0</div> </div> </div> </template> export default { name: "ScrollList", props: { item: { type: String, default: 0 }, delay: { type: Number, default: 1 }, }, data() { return { timer: null, isShow: true }; }, watch: { item(newVal,oldVal) { console.log('1111',newVal); this.isShow = true; } }, mounted() {}, beforeDestroy() {} }; <style scoped lang="less"> .scroll_box { width: 70px; height: 50px; font-size: 50px; overflow: hidden; line-height: 50px; text-align: center; } .list_box { color: #fff; transform: translateY(calc(var(--i) * -9.05%)); } .animate { animation: move 0.3s linear infinite, bounce-into 0.8s calc(var(--delay) * 0.2s) forwards; } @keyframes move { from { transform: translateY(-90%); filter: url(#blur); } to { transform: translateY(1%); filter: url(#blur); } } @keyframes bounce-into { from { transform: translateY(calc(var(--i) * -9.05% - 7%)); filter: none; } 25% { transform: translateY(calc(var(--i) * -9.05% + 3%)); } 50% { transform: translateY(calc(var(--i) * -9.05% - 1%)); } 70% { transform: translateY(calc(var(--i) * -9.05% + 0.6%)); } 85% { transform: translateY(calc(var(--i) * -9.05% - 0.3%)); } to { transform: translateY(calc(var(--i) * -9.05%)); } } </style> 父组件调用 <div class="scroll"> <ScrollList v-for="(item, index) in numArr" :key="index" :item="item" :delay="index" class="nums" /> </div> <script> import ScrollList from "@/components/scroll_list.vue"; export default { name: 'HomeView', components: { ScrollList }, data() { return { amount: 892345.11 }; }, computed: { numArr() { const str = String(this.amount); let options = []; for (let i = 0; i < str.length; i++) { options.push((str[i])); } return options; } }, mounted() { // setInterval(() => this.amount++, 10000); } } </script> <style> .scroll { display: flex; } </style>效果图就不发了 电脑安装flash,上传视频一直说flash没安装 |
|