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