用Vue搭建一个大屏数据可视化页面实战一(Vue实战系列)

2023-11-13

一、从网上找一个喜欢的图

1.首先大屏要先解决屏幕适配的问题:这里用viewport的方案,使用postcss-px-to-viewport插件,在vue项目里新建postcss.config.js配置一下postcss-px-to-viewport:

module.exports = {
    plugins: {
        // ...
        'postcss-px-to-viewport': {
            viewportWidth: 1920,
            unitPrecision: 1,
        }
    }
}

2.大屏设计,咱自己设计的太丑,所以我从站酷上找了一个看起来还不错的设计图,然后照着图写页面。
在这里插入图片描述
怎么样?这个页面的效果还挺好的吧?大家觉得怎么样啊。下面我们完成这个页面。

二、分析一下页面,看看哪些适合做成公用组件

在这里插入图片描述
很明显是他,他还有两个变形:
在这里插入图片描述
在这里插入图片描述
所以,先把这个组件实现一下。

三、实现第一个组件:

  1. 整个面板是透明渐变
  2. 左上角是一个渐变三角形,或者整个左边是个矩形,或者没有
  3. 统一的标题

其他的好说,就是这个三角形渐变繁琐点

  1. 如果用div的border实现三角形,可以实现,但是怎么实现渐变色呢?
  2. 用canvas画三角形,可行,但是想实现布局响应式,适配不同分辩是不是麻烦点?“postcss-px-to-viewport”会对内联css样式,外联css样式有效,对内嵌css样式,js动态css无效,canvas画东西都是在js里面操作。做适配是不是会很麻烦?
	initPanel(){
      //三角形
      let ctx = this.$refs.sanjiaoxing.getContext("2d");
      //设置渐变色
      let grd =ctx.createLinearGradient(0,0,0,100);
      grd.addColorStop(0,"#51acf7");
      grd.addColorStop(1,"#5adce1");
      ctx.fillStyle=grd;
      ctx.lineWidth=0;
      ctx.beginPath();
      ctx.strokeStyle="";
      ctx.moveTo(0,0);
      ctx.lineTo(0,100);
      ctx.lineTo(120,0);
      ctx.closePath();
      ctx.stroke();
      ctx.fill();
      //图片
      let img = new Image(60,45);
      img.src = require("@/views/activity/assets/书包_#ffffff_128_20117032.png")
      img.onload = function () {
        ctx.drawImage(img,5,5,60,45);
      }
    }

在这里插入图片描述
先用canvas写一下这个组件。屏幕尺寸改变了,canvas要根据新的尺寸重新渲染,来实现屏幕适配。

  1. 用svg实现三角形,svg本身矢量图可以缩放。

看来最好是用svg

<div class="hezi">
   <div class="background"></div>
     <svg class="svg-2" viewBox="0, 0, 100, 100">
       <defs>
         <linearGradient id="grad1" x1="0%" y1="0%" x2="0%" y2="100%">
           <stop offset="0%" style="stop-color:rgb(255,255,0);stop-opacity:1"/>
           <stop offset="100%" style="stop-color:rgb(255,0,0);stop-opacity:1"/>
         </linearGradient>
       </defs>
       <path d="M 0 0 l 90 0 l -90 90" fill="url(#grad1)"></path>
     </svg>
     <img class="hezi-icon" src="@/views/环动.svg">
</div>

用svg把三角形画出来,从www.iconfont.cn下载个svg的图,然后看下效果,完美!
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用Vue搭建一个大屏数据可视化页面实战一(Vue实战系列) 的相关文章

  • 为什么“tbody”不设置表格的背景颜色?

    我在用 tbody 作为 CSS 选择器来设置background color在一个表中 我这样做是因为我有多个 tbody 表内的部分 它们具有不同的背景颜色 我的问题是 当使用border radius在细胞上 细胞不尊重backgro
  • 悬停时为 SVG 制作动画

    我正在尝试在悬停时为 SVG 文件设置动画 默认情况下 它可以使用 svg 函数实现出色的动画效果 例如
  • 三级十进制有序列表 CSS

    我有一个 html 中的三级有序列表 我想为其提供如下样式 1 Item 1 1 1 Item 2 1 1 1 Item 3 下一个 plunker 中有一个 html 示例 http plnkr co edit DqhZ5pJILTUHG
  • 如何在悬停标签时显示块div

    如何在悬停标签时打开 div 标签 服务是标签的id services是div标签的id 我的 HTML 代码是 ul li a href Services a li ul div h1 Hello h1 div 我的CSS代码是这样的 S
  • 是否可以通过 CSS 3 使用文本内容设置元素中文本的颜色?

    好吧 这更像是一个有很多非 CSS 解决方案的问题 但我希望更多地从理论角度来做这件事 我有一个它的应用程序 但不值得以任何其他方式对其进行编码 有趣的 问题 如何使用元素的文本为元素的文本着色 我有一个元素 全部都是它自己的 它将包含颜色
  • 如何更改chart.js中的标签颜色?

    我有一个像这样定义的饼图 var myChart new Chart ctx type doughnut data labels data labels datasets data data values backgroundColor r
  • 让用户渲染自己的 SVG 文件的安全隐患

    我计划让网站用户上传他们自己的 SVG 文档并使用inkscape or svg2pdf 用户要么未经身份验证 要么经历一个简单的注册过程 所以我预计会有一些黑客尝试 我可以采取哪些过滤措施来最大程度地减少安全威胁 Inkscape 似乎并
  • iOS 11 浏览器图像错误

    在 iOS 11 中滚动页面时出现以下错误 在 Firefox Safari 和 Chrome 中 在 Android 设备中 不会发生该错误 这些是背景图像 我不知道这是否是导致错误的原因 图 2 显示了图像在 Android 中的用途和
  • 有没有模拟 Facebook 游览的 jQuery 插件?

    我指的是 Facebook 游览 可能使用开箱即用的 Facebook CSS 我已经知道这两个 http tympanus net codrops 2010 12 21 website tour http tympanus net cod
  • 角度 2 中的动态 styleUrls?

    是否可以将样式表的 url 动态注入到组件中 就像是 styleUrls stylesheet1 css this additionalUrls 或者 一厢情愿并注意这只是假代码 export class MyComponent imple
  • 如何在 Bootstrap 3 中指定行高?

    使用 Bootstrap 3 我将 row 类的高度设置为 3 5em 我在行中有几个输入 它们与行的顶部对齐 我想让它们底部对齐 我尝试过垂直对齐 底部的样式 但这似乎不起作用 我想让东西底部对齐的原因是我有一个浮动标签 我在输入字段上方
  • CSS - 第一个没有特定类别的孩子

    是否可以编写一个 CSS 规则来选择没有特定类的元素的第一个子元素 example div span class common class ignore span span class common class ignore span sp
  • 每页都包含菜单

    假设我有一个简单的 CSS 布局 我的菜单是侧面的一列 此菜单将出现在每个网页上 大约 10 个网页 如果我在这个菜单上有链接等形式的项目 我怎样才能做到这样 如果我在一页上添加链接 它会将其添加到所有页面 你能把它做成一个 PHP 页面吗
  • 使下划线 CSS 过渡改变方向

    我正在使用我找到的一些风格这个网站 http callmenick com post simple css3 transitions transforms animations compilation创建有效的下划线幻灯片 请参见jsfid
  • 当动态列的 ng-prime 数据表中的行更新时如何更新行背景颜色?

    我想在行更新时更改行颜色 记录更新成功时如何设置行背景颜色 html
  • 是否可以仅针对 Chrome,而不是所有支持 Webkit 的浏览器?

    隐约相关这个问题 https stackoverflow com questions 2447511 can you target google chrome 但又不完全相同 我只想定位 Chrome 而不定位 Safari 我使用了以下媒
  • 使用 JQuery 更改表附加行中某些单元格的背景颜色

    我正在向表中追加一行 如何更改该行中一组单元格的背景颜色 假设列有 25 列 从 17 到 22 的列需要更改背景颜色 这是我到目前为止所尝试的 table1 append row1 row1 children td not td eq 0
  • 如何使用 javascript/ASP.NET/CSS 旋转和淡入淡出背景图像

    我需要随机淡入淡出背景图像 这将是一个定时函数 例如每 5 秒一次 我需要使用 ASP NET Javascript CSS 或全部三者来完成此操作 请大家帮帮我 谢谢 Cycle 一个 jQuery 插件 是一个非常灵活的图像旋转解决方案
  • 如何为多个元素添加Class?

    我正在使用这段 javascript 向多个元素添加一个类 我试图引用多个 div 并向它们添加类 它只适用于第一个 JavaScript
  • :目标选择器不适用于选项标签

    我试图在这里帮助一位 StackOverflow 成员 我发现 CSS target选择器不适用于选项标签 我创建了一个示例来说明使用w3schools 教程 http www w3schools com cssref tryit asp

随机推荐

  • 二叉树的建立与遍历详解 菜鸟都能看懂的教程

    树形结构要多利用递归来求解 递归的关键就是想清楚所有的基准情形 然后扩展到一般情况 写代码的时候最好把基准情况放在前面 把一般情况放在后面 定义二叉树结构体 typedef struct BinaryTreeNode TelemType d
  • 前端获取后端的BigDecimal类型字段数值,丢失精度处理

    1 问题 前端请求后端接口获取BigDecimal类型字段数值时丢失精度 例如 5999 00变成5999 5999 50变成5999 5 2 解决方法 在字段上添加 JsonFormat shape JsonFormat Shape ST
  • 旋转矩阵推导

    一 前言 周而复始的搜索 循环往复的记忆 但终究还是不深刻 不能像老师一样交给一个新人 所谓提纲挈领 名师指导还是相当有必要的 因为所有的坎 名师都遇到过 而且总结了自己的一套方法论 这样才能够言简意赅 才能够让一个什么都不懂 有点夸张 略
  • springboot项目创建之后多个文件报红

    原因 因为你之前可能使用了git提交过项目 没有修改配置 而且在idea里默认就会会用git 解决办法 file gt seting gt version Control gt 编辑 gt 点击你的项目 gt vcs 修改为null
  • 服务器安全狗搭建过程

    发现安全狗构建基础的服务器安全环境简单高效 推荐 整理步骤如下 环境 Centos 6 x 7 x 64位 wget http down safedog cn safedog linux64 tar gz tar xzvf safedog
  • 【机器学习】感知机、线性支持向量机

    文章目录 一 感知机 线性二分类 二 感知机的损失函数 三 感知机实战 sklearn linear model Perceptron 四 Linear SVM 参考链接 一 感知机 线性二分类 感知机是一种相对简单的 二分类 的 线性 分
  • 在职场中哪些人不会被企业团队选用?在企业团队中哪些人不能用?

    企业团队离不开员工的打拼 那么现在人才济济的社会 企业团队中那些人是不能用的 小人不能用 当今社会我们评论一个人的好坏 首先看到的是他的道德品质 当一个人的道德品质不行 道德品行很差时 我们统称这类人为小人 都说远小人 在职场中也一样 小人
  • 华为OD机试 C++【TLV解析】

    题目 你收到了一串由两端设备传递的TLV格式的消息 现在你需要根据这串消息生成一个对应的 tag length valueOffset 列表 详细说明 这串消息其实是由许多小组成的 每一小组里包含了tag length value 其中 t
  • 关于element-ui el-cascader 级联选择器 单独选择任意一级选项,去掉单选按钮(记录一下)

    效果如下 分类 代码如下 单独选择任意一项属性 checkStrictly 绑定的是分类 id popper class自定义类名
  • SpringBoot--基础--05--错误处理

    SpringBoot 基础 05 错误处理 一 原理 1 1 自动配置类 ErrorMvcAutoConfiguration 1 2 一但系统出现4xx或者5xx之类的错误 ErrorPageCustomizer就会生效 定制错误的响应规则
  • 13个SQL优化技巧

    1 避免无计划的全表扫描 如下情况进行全表扫描 该表无索引 对返回的行无人和限制条件 无Where子句 对于索引主列 索引的第一列 无限制条件 对索引主列的条件含在表达式中 对索引主列的限制条件是is not null或 对索引主列的限制条
  • 国内IoT云平台横向对比

    三年过去了 目前各IoT平台功能有了极大的丰富和优化 行业头部玩家也逐渐浮出水面 目前市场的排名如下 阿里 小米 京东 百度 涂鸦 这几家以开放的生态 接入了千万甚至亿级设备 传统设备厂家如美的 海尔也在积极搭建自己的物联网平台 物联网已然
  • 华为天才少年谢凌曦分享了万字长文,阐述了关于视觉识别领域发展的个人观点...

    作者 谢凌曦 编辑 桃子 报道 新智元 计算机视觉识别领域的发展如何 华为天才少年谢凌曦分享了万字长文 阐述了个人对其的看法 最近 我参加了几个高强度的学术活动 包括CCF计算机视觉专委会的闭门研讨会和VALSE线下大会 经过与其他学者的交
  • 【软件分析/静态分析】学习笔记01——Introduction

    课程链接 李樾老师和谭天老师的 南京大学 软件分析 课程01 Introduction 哔哩哔哩 bilibili 目录 一 静态程序分析介绍 1 1 PL and Static Analysis 程序语言和静态分析 1 2 为什么要学 S
  • HTTP学习(五)实体、编码

    HTTP作为现在非常重要的协议 需要仔细梳理一下 本次学习知识点来自于 HTTP权威指南 只是文中知识点罗列 算是读书笔记 请有兴趣的读者购买 HTTP权威指南 完整阅读 一 实体 每天都有数以亿计的各种媒体对象经由 HTTP 传送 如图像
  • AMD CPU针脚弯曲无工具 完美修好

    b350m pro4 r7 3700 Q 电脑cpu针脚不小心弯了怎么办 今天在清理机箱的时候 把风扇取下来的时候 cpu连着风扇一起取下来了 然后因为我的错误操作 cpu有一排针脚都弯曲 对角针脚有四五跟接近45度弯曲 见图 解决工具 针
  • TreeMap的应用

    TreeMap的demo package dailyTest import java util Comparator import java util TreeMap author createtime 2023 9 12 19 56 pu
  • C# 学习笔记(四)数据类型

    C 学习笔记 四 数据类型 开篇语 C 都有哪些数据类型呢 前面几次学习里我们已经遇到过的几种数据类型有 string 字符串类型 double 双精度类型 抽象类型 即Class类型 具体的某个类 在 C 中 变量分为以下几种类型 值类型
  • Transformer详解

    Transformer 什么是transformer 为什么需要用transformer encoder sub encoder block multi head self attention FFN input decoder input
  • 用Vue搭建一个大屏数据可视化页面实战一(Vue实战系列)

    一 从网上找一个喜欢的图 1 首先大屏要先解决屏幕适配的问题 这里用viewport的方案 使用postcss px to viewport插件 在vue项目里新建postcss config js配置一下postcss px to vie