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

这篇具有很好参考价值的文章主要介绍了【Vue基础-数字大屏】加载动漫效果。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、需求描述

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

二、步骤代码

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

npm install -g json-server

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

【Vue基础-数字大屏】加载动漫效果,vue.js,前端

{
    "one":[
        { 
                "value": 67, 
                "name": "美食",
                "itemStyle":{
                     "normal":{ 
                        "color":"rgb(132,112,255)"
                     } 
                            }  
            },
            {  
                "value": 85, 
                "name": "服饰" ,
                "itemStyle":{
                     "normal":{ 
                        "color":"rgb(34,139,34)"
                     }
                            }
            },
            { 
                "value": 45, 
                "name": "数码",
                "itemStyle":{
                     "normal":{ 
                        "color":"rgb(0,206,209)"
                     }
                            }
        }, 
            { 
                "value": 98, 
                "name": "家电" ,
                "itemStyle":{
                     "normal":{ 
                        "color":"rgb(255,127,0)"
                     }
                            }
        } 
    ]
}

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 

【Vue基础-数字大屏】加载动漫效果,vue.js,前端

<template> 
    <div ref="myChart" id="myChart"></div>
</template>
<script>
import * as echarts from "echarts"
import axios from "axios"
export default { 
     data(){
         return {
             eData:[]
         }
     },
    methods:{
        async linkData(){
            let echarsdata=await axios({url:"http://localhost:8888/one"})
            console.log(echarsdata)
            this.eData=echarsdata.data
        }
    },
    mounted(){

        let myChart=echarts.init(this.$refs.myChart) // 2.设置echarts数据  

        //开始等待
        myChart.showLoading()
        //请求完毕再渲染
        this.linkData().then(()=>{

        //结束等待
        myChart.hideLoading()   

        //3.设置配置项   

        let option={
            title: {
                text: '饼状图', 
                subtext: '基本设置',
                left: 'center'//设置位置居中 
                },
            tooltip: {
                trigger: 'item'//触发类型item数据项图形触发 
            }, 
            legend: {
                orient: 'vertical',//图例列表的布局朝向vertical纵向    
                left: 'left' 
            },
            series: [ 
                    { 
                    name: '销售量', 
                    type: 'pie',//饼图主要用于表现不同类目的数据在总和中的占比。每个的弧度表示数据数量的比例。          
                    radius: ['40%', '70%'], //饼图的半径。数组的第一项是内半径,第二项是外半径。
                    // 设置环形图      
                    label: {
                        //饼图图形上的文本标签        
                        show: true, 
                        position:"inside",//outside饼图扇区外侧inside饼图扇区内部center在饼图中心位置        
                        color:"yellow"
                     }, 
                    labelLine: {//标签的视觉引导线配置        
                        show: false 
                    }, 
                    roseType: 'area',//是否展示成南丁格尔图,通过半径区分数据大小       
                    itemStyle: {//设置内容样式        
                        color: '#c23531', 
                        shadowBlur: 200, 
                        //shadowColor: 'rgba(0, 0, 0, 0.5)' 
                        shadowColor: 'rgba(255,193,37,0.5)'
                     }, 
                    data:this.eData
                    //data
                 } ] 
                 }
                    // 4.设置图表绘制图表 
                myChart.setOption(option) 
                
            

        })


        //1.初始化
        // let data=[
        //     { 
        //         value: 67, 
        //         name: '美食' ,
        //         itemStyle:{
        //              normal:{ 
        //                 color:'rgb(132,112,255)'//香芋紫
        //              } 
        //                     }  
        //     },
        //     { value: 85, 
        //         name: '服饰' ,
        //         itemStyle:{
        //              normal:{ 
        //                 color:'rgb(34,139,34)'//暗绿色
        //              }
        //                     }
        //     },
        //     { value: 45, name: '数码' ,
        //         itemStyle:{
        //              normal:{ 
        //                 color:'rgb(0,206,209)'//湖蓝色
        //              }
        //                     }
        // }, 
        //     { value: 98, name: '家电' ,
        //         itemStyle:{
        //              normal:{ 
        //                 color:'rgb(255,127,0)'//湖蓝色
        //              }
        //                     }
        // } 
        // ]
        
            }
        }
        
</script>
<style>
    #myChart{ 
        width: 500px; 
        height: 500px; 
        border: 1px solid red;
        }
</style>

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

//开始等待
myChart.showLoading()
        
//请求完毕再渲染
this.linkData().then(()=>{
//结束等待
myChart.hideLoading()

//略

三、效果展示

1、

【Vue基础-数字大屏】加载动漫效果,vue.js,前端

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

【Vue基础-数字大屏】加载动漫效果,vue.js,前端

2、加载动漫效果

【Vue基础-数字大屏】加载动漫效果,vue.js,前端

网页设置网速方法:

【Vue基础-数字大屏】加载动漫效果,vue.js,前端

3、页面渲染效果

【Vue基础-数字大屏】加载动漫效果,vue.js,前端

四、学习链接

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://www.toymoban.com/news/detail-726034.html

到了这里,关于【Vue基础-数字大屏】加载动漫效果的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vue3 中引入液晶数字字体(通常用于大屏设计)

    下载液晶字体 DS-Digital.ttf ‼️注意:本项目使用的是 vue-cli 搭建的基础框架, webpack.base.conf.js 配置文件中已经配置好了,直接如上步骤使用即可,若是其他框架则需要检查一下 webpack.base.conf.js 配置文件中以下配置是否包括 ttf 格式。

    2024年02月11日
    浏览(27)
  • Vue2 - 延迟加载(requestAnimationFrame实现)+ 效果展示

    当一个页面需要加载较多个组件时,并且组件自身又比较复杂。如果一次性加载,可能等待时间较长,体验不好。 一种解决办法:分批次的来渲染子组件。 通过 requestAnimationFrame(callback) 实现,同时能够控制 按照指定顺序来渲染 。 简单理解为:浏览器会按照一定的频率来重

    2024年01月25日
    浏览(28)
  • 前端vue2 全局水印效果

    最近写项目遇到一个需求,全局显示水印,不管在哪个路由都要显示。 想要实现的效果: 新建shuiyin.js文件 main.js中全局注册

    2024年02月15日
    浏览(31)
  • 【可视化大屏-3d机房监控】Vue与three.js搭建可视化机房监控

    演示网址:http://jstopo.top网站地址 3d机房地址:http://jstopo.top/threeTopo/#/monitor/index

    2024年03月10日
    浏览(41)
  • 使用Vue.js实现文字跑马灯效果

    实现文字跑马灯效果,首先用到 substring()截取 和 setInterval计时器 clearInterval()清除计时器 效果如下: 实现代码如下: 以上是实现文字跑马灯效果,如有不足的地方,欢迎在评论区留言。

    2023年04月19日
    浏览(32)
  • 清除引入js缓存,vue切换页面重新加载

    require引入的js require.cache删除js缓存

    2024年02月16日
    浏览(39)
  • vue项目业务实现,视频监控-文件流,大屏适配方案(v-scale-screen),websocket前端

    最近把以前的业务场景及解决方案整理了一下,具体实现的工具如下: 监控-视频文件流==video.js + videojs-contrib-hls 大屏适配方案== v-scale-screen websocket==sockjs-client+ webstomp-client 下载video插件, 使用方法 (1)导入 (2)模板中写入标签 (3)页面渲染时调用函数,渲染视频 option

    2024年02月16日
    浏览(33)
  • 前端实现自适应屏幕数据可视化大屏(vue + v-scale-screen组件 + dataV组件)

    前言 目前市面上有很多付费的数据可视化平台,作为一个代码编程人员,为啥不自己搞一套呢,不仅自己可以增加自己的技能,也可以减少开发成本,何乐而不为呢? 写这篇文章,一方面工作有需求要实现数据可视化大屏,另一方面当然现在也有很多场景都用到数据可视化

    2024年02月08日
    浏览(35)
  • vue 项目使用three.js 实现3D看房效果

    0.前言 该教程能帮助直接写出vue项目的3D看房效果!!! 先上效果图 1.安装依赖 2.vue代码 这里文件名为three.vue 代码非原创,出处 vue3+threejs实现全景看房 (异步加载 BOLLROOM 部件为对原代码的修改) 注意这里的hdr 文件必须要放在assets文件夹中,且要通过import模块的形式导入!

    2024年02月13日
    浏览(34)
  • Vue + Element UI 前端篇(十):动态加载菜单

    之前我们的导航树都是写死在页面里的,而实际应用中是需要从后台服务器获取菜单数据之后动态生成的。 我们在这里就用上一篇准备好的数据格式Mock出模拟数据,然后动态生成我们的导航菜单。 接口模块化 我们向来讲究模块化,之前接口都集中在,interface.js,我们现在把

    2024年02月09日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包