• 【Vue基础-数字大屏】加载动漫效果


    一、需求描述

    当网页正在加载而处于空白页面状态时,可以在该页面上显示加载动画提示。

    二、步骤代码

    1、全局下载npm install -g json-server

    npm install -g json-server

    2、在src目录下新建文件夹mock,新建文件data.json存放模拟数据

    1. {
    2. "one":[
    3. {
    4. "value": 67,
    5. "name": "美食",
    6. "itemStyle":{
    7. "normal":{
    8. "color":"rgb(132,112,255)"
    9. }
    10. }
    11. },
    12. {
    13. "value": 85,
    14. "name": "服饰" ,
    15. "itemStyle":{
    16. "normal":{
    17. "color":"rgb(34,139,34)"
    18. }
    19. }
    20. },
    21. {
    22. "value": 45,
    23. "name": "数码",
    24. "itemStyle":{
    25. "normal":{
    26. "color":"rgb(0,206,209)"
    27. }
    28. }
    29. },
    30. {
    31. "value": 98,
    32. "name": "家电" ,
    33. "itemStyle":{
    34. "normal":{
    35. "color":"rgb(255,127,0)"
    36. }
    37. }
    38. }
    39. ]
    40. }

    3、在mock目录下启动json-server

    json-server --watch data.json --port 8888

    4、下载数据请求内容npm install --save axios

    npm install --save axios

    如果加载缓慢,先更换npm的安装镜像源为国内的:

     npm config set registry https://registry.npm.taobao.org

    可查看镜像是否安装:

    npm config get registry

    5、启动项目

    npm run dev 

    1. <template>
    2. <div ref="myChart" id="myChart"></div>
    3. </template>
    4. <script>
    5. import * as echarts from "echarts"
    6. import axios from "axios"
    7. export default {
    8. data(){
    9. return {
    10. eData:[]
    11. }
    12. },
    13. methods:{
    14. async linkData(){
    15. let echarsdata=await axios({url:"http://localhost:8888/one"})
    16. console.log(echarsdata)
    17. this.eData=echarsdata.data
    18. }
    19. },
    20. mounted(){
    21. let myChart=echarts.init(this.$refs.myChart) // 2.设置echarts数据  
    22. //开始等待
    23. myChart.showLoading()
    24. //请求完毕再渲染
    25. this.linkData().then(()=>{
    26. //结束等待
    27. myChart.hideLoading()
    28. //3.设置配置项  
    29. let option={
    30. title: {
    31. text: '饼状图',
    32. subtext: '基本设置',
    33. left: 'center'//设置位置居中
    34. },
    35. tooltip: {
    36. trigger: 'item'//触发类型item数据项图形触发
    37. },
    38. legend: {
    39. orient: 'vertical',//图例列表的布局朝向vertical纵向    
    40. left: 'left'
    41. },
    42. series: [
    43. {
    44. name: '销售量',
    45. type: 'pie',//饼图主要用于表现不同类目的数据在总和中的占比。每个的弧度表示数据数量的比例。
    46. radius: ['40%', '70%'], //饼图的半径。数组的第一项是内半径,第二项是外半径。
    47. // 设置环形图      
    48. label: {
    49. //饼图图形上的文本标签        
    50. show: true,
    51. position:"inside",//outside饼图扇区外侧inside饼图扇区内部center在饼图中心位置        
    52. color:"yellow"
    53. },
    54. labelLine: {//标签的视觉引导线配置        
    55. show: false
    56. },
    57. roseType: 'area',//是否展示成南丁格尔图,通过半径区分数据大小      
    58. itemStyle: {//设置内容样式        
    59. color: '#c23531',
    60. shadowBlur: 200,
    61. //shadowColor: 'rgba(0, 0, 0, 0.5)'
    62. shadowColor: 'rgba(255,193,37,0.5)'
    63. },
    64. data:this.eData
    65. //data
    66. } ]
    67. }
    68. // 4.设置图表绘制图表
    69. myChart.setOption(option)
    70. })
    71. //1.初始化
    72. // let data=[
    73. // {
    74. // value: 67,
    75. // name: '美食' ,
    76. // itemStyle:{
    77. // normal:{
    78. // color:'rgb(132,112,255)'//香芋紫
    79. // }
    80. // }
    81. // },
    82. // { value: 85,
    83. // name: '服饰' ,
    84. // itemStyle:{
    85. // normal:{
    86. // color:'rgb(34,139,34)'//暗绿色
    87. // }
    88. // }
    89. // },
    90. // { value: 45, name: '数码' ,
    91. // itemStyle:{
    92. // normal:{
    93. // color:'rgb(0,206,209)'//湖蓝色
    94. // }
    95. // }
    96. // },
    97. // { value: 98, name: '家电' ,
    98. // itemStyle:{
    99. // normal:{
    100. // color:'rgb(255,127,0)'//湖蓝色
    101. // }
    102. // }
    103. // }
    104. // ]
    105. }
    106. }
    107. </script>
    108. <style>
    109. #myChart{
    110. width: 500px;
    111. height: 500px;
    112. border: 1px solid red;
    113. }
    114. </style>

    其中,在渲染完毕前后引用showLoading和hideLoading实现加载动漫效果

    1. //开始等待
    2. myChart.showLoading()
    3. //请求完毕再渲染
    4. this.linkData().then(()=>{
    5. //结束等待
    6. myChart.hideLoading()
    7. //

    三、效果展示

    1、

    获取到上图的数据自动加载到下图中

    2、加载动漫效果

    网页设置网速方法:

    3、页面渲染效果

    四、学习链接

    1、加载动画效果https://www.bilibili.com/video/BV14u411D7qK/?p=38&spm_id_from=pageDriver&vd_source=841fee104972680a6cac4dbdbf144b50

    2、遇到的问题及解决方法https://blog.csdn.net/qq_42294095/article/details/133807195?spm=1001.2014.3001.5501

  • 相关阅读:
    HTTPS协议和SOCKS5协议的区别
    React学习笔记
    PostgreSQL | CTE | 使用with子句的通用表达式
    图片破损打不开如何修复?一招轻松恢复损坏图片!
    枚举的定义和应用(JAVA基础十二)
    LeetCode 290. Word Pattern
    C++语法琐碎记录
    drf的JWT认证
    Pikachu靶场——URL 重定向
    2022年6月总结
  • 原文地址:https://blog.csdn.net/qq_42294095/article/details/133808042