3 changed files with 100 additions and 20 deletions
-
18src/assets/styles/font-some.css
-
30src/views/environmentalScreen/index.vue
-
72src/views/environmentalScreen/module/numFlip.vue
@ -0,0 +1,72 @@ |
|||||
|
<template> |
||||
|
<div> |
||||
|
<div class="chartNum"> |
||||
|
<div :id="tnum" class="box-items"> |
||||
|
<li class="number-item"><span><i ref="numberItem" class="item">0123456789</i></span></li> |
||||
|
</div> |
||||
|
</div> |
||||
|
</div> |
||||
|
</template> |
||||
|
|
||||
|
<script> |
||||
|
export default { |
||||
|
props: { |
||||
|
tnum: { |
||||
|
type: String, |
||||
|
default: null |
||||
|
} |
||||
|
}, |
||||
|
data() { |
||||
|
return { |
||||
|
chartNum: ['0', '0', '0', '0', '0', '0', '0', '0'] |
||||
|
} |
||||
|
}, |
||||
|
mounted() { |
||||
|
this.$nextTick(() => { |
||||
|
this.start() |
||||
|
}) |
||||
|
}, |
||||
|
methods: { |
||||
|
start() { |
||||
|
var strHtml = '' |
||||
|
for (var i = 0; i < this.chartNum.length; i++) { |
||||
|
strHtml += '<li class="number-item">\n' + |
||||
|
' <span><i class="item" ref="numberItem">0123456789</i></span>\n' + |
||||
|
' </li>' |
||||
|
} |
||||
|
document.getElementById(this.tnum).innerHTML = strHtml |
||||
|
// 定时改变数字 |
||||
|
const _this = this |
||||
|
setInterval(() => { |
||||
|
_this.toOrderNum('123456') |
||||
|
_this.setNumberTransform() |
||||
|
}, 1000) |
||||
|
}, |
||||
|
toOrderNum(num) { |
||||
|
num = num.toString() // 数字变成字符串 |
||||
|
if (num.length < 6) { // 如未满位数,添加"0"补位 |
||||
|
num = '0' + num |
||||
|
this.toOrderNum(num) // 递归添加"0"补位 |
||||
|
} else if (num.length === 6) { // 数中加入逗号 |
||||
|
this.chartNum = num.split('') // 将其便变成数据 |
||||
|
} else { |
||||
|
alert('显示异常') |
||||
|
} |
||||
|
}, |
||||
|
setNumberTransform() { |
||||
|
var numberItems = document.getElementsByClassName('item') |
||||
|
// console.log(numberItems) |
||||
|
const numberArr = this.chartNum.filter(item => !isNaN(item)) |
||||
|
for (var index = 0; index < numberItems.length; index++) { |
||||
|
const elem = numberItems[index] |
||||
|
elem.style.transform = 'translate(-50%, -' + numberArr[index] * 10 + '%)' |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
</script> |
||||
|
|
||||
|
<style lang="scss" scoped> |
||||
|
@import "~@/assets/styles/font-some.css"; |
||||
|
|
||||
|
</style> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue