前端大屏可视化项目

article/2025/11/11 5:16:05

这篇文章记录了我开发中遇到的问题和解决方法。

1、确定需要适配屏幕的大小,虽然我们前端默认大屏的1920*1080起步的,但是防止有人不懂开发前需要新搞清楚适配范围;

2、和UI说清楚字体大小尽量在12px以上,一是12px以下写起来麻烦;二是12px以下在大屏中展示效果不好;

3、不同大小屏幕的适配方法 我使用的是zoom,其中1920是设计稿的宽度

const s = window.innerWidth / 1920
document.body.style.zoom = s + ''

当然transform scale 和rem等方式也行;

4、大屏中有很多样式很难实现,可能会使用很多图片代替,图片太多可以使用雪碧图来优化;

5、DataV组件库中的轮播表config数据更新后视图不发生变化的解决方法:

this.config.data = ['foo', 'foo']是无效的this.config = { data: ['foo', 'foo'] }才是有效的

6、3d柱形图的实现:模仿了
https://gallery.echartsjs.com/editor.html?c=xH0E6KFMcG

7、 实现下图的进度条效果在这里插入图片描述

使用背景图片
在这里插入图片描述

background-position: ${100 - item.‘百分比’}%;

8、 折线图渐变背景色:模仿https://echarts.apache.org/examples/zh/editor.html?c=line-tooltip-touch

9、点击屏幕左边在屏幕右边弹窗,点击屏幕右边在屏幕左边弹窗功能的实现(配合3中的zoom可适配不同屏幕),
使用下面代码可以获取点击的位置;

function getElementPos (elementId) {var ua = navigator.userAgent.toLowerCase()var el = document.getElementById(elementId)if (el.parentNode === null || el.style.display === 'none') {return false}var parent = nullvar pos = []var boxif (el.getBoundingClientRect) { // IEbox = el.getBoundingClientRect()var scrollTop = Math.max(document.documentElement.scrollTop, document.body.scrollTop)var scrollLeft = Math.max(document.documentElement.scrollLeft, document.body.scrollLeft)return { x: box.left + scrollLeft, y: box.top + scrollTop }} else if (document.getBoxObjectFor) { // geckobox = document.getBoxObjectFor(el)var borderLeft = (el.style.borderLeftWidth) ? parseInt(el.style.borderLeftWidth) : 0var borderTop = (el.style.borderTopWidth) ? parseInt(el.style.borderTopWidth) : 0pos = [box.x - borderLeft, box.y - borderTop]} else { // safari & operapos = [el.offsetLeft, el.offsetTop]parent = el.offsetParentif (parent !== el) {while (parent) {pos[0] += parent.offsetLeftpos[1] += parent.offsetTopparent = parent.offsetParent}}if (ua.indexOf('opera') !== -1 || (ua.indexOf('safari') !== -1 && el.style.position === 'absolute')) {pos[0] -= document.body.offsetLeftpos[1] -= document.body.offsetTop}}if (el.parentNode) {parent = el.parentNode} else {parent = null}while (parent && parent.tagName !== 'BODY' && parent.tagName !== 'HTML') { // account for any scrolled ancestorspos[0] -= parent.scrollLeftpos[1] -= parent.scrollTopif (parent.parentNode) {parent = parent.parentNode} else {parent = null}}return { x: pos[0], y: pos[1] } // 返回点击位置的坐标
}this.isLeft = getElementPos(idName).x > 960

http://chatgpt.dhexx.cn/article/sNi8sAw7.shtml

相关文章

uniapp项目的经验

map组件的使用 uniapp内置的高德地图的SDK,所以需要在高德开放平台申请app端应用的key,包括Android Key 和 IOS Key。 在uni-app的编译模式下,map组件接受的经纬度坐标系是国测局坐标,即 gcj02 空字符和数值0全等比较的问题 将…

前端项目网易云音乐移动端经验总结

HTML: audio标签控制音乐播放,有个原生play()方法控制播放marquee这个标签可以实现滑动,类似于动画一样marquee(文字滚动)标签_别The Crossing的博客-CSDN博客_marquee标签【HTML】中的marquee标签属性详解_人间奶糖哇…

React项目经验总结

目录 1、报错 xxx.map is not a function 2、如何将后端返回的二进制流转换为base64格式的展示? 3、下载 4、父组件如何把值传给子组件?子组件又如何接收? 5、父组件如何获取子组件所有的state里面定义的值? 6、antdreact 之layou…

前端程序员应该了解的项目经验分享

1:HTML 尽量使用语义化标签 header aside main footer 等给a标签加上href:“javascript:;”就能禁止跳转块级元素独占一行除了div等那些,基本上都是行内元素行内元素设置宽高边距无效img、input属于行内替换元素:heig…

html项目经验,web前端没有项目经验怎么面试

web前端没有项目经验面试的方法:1、要熟练掌握前端的基本知识;2、了解目前基础框架的使用;3、熟练掌握基础知识的使用技巧;4、要表现出良好的学习方法和心态。 近年来,随着前端的火热,很多人都纷纷加入到前…

Orientdb基本操作

一、建模 1、 模型定义-销售数据库(saledb) 顶点继承自属性人(Person) 姓名(name)性别(sex)出生日期(birthday)员工(Employee)V、Per…

redis切换db方法

//最近发现redis 数据都是默认存在db0的 看着就崩溃了。这么做无非就是想让不同类型的数据属于不同的应用程序而彼此分开 后面自己总结了三种方法给大家分享下 有什么不足的地方大家也可以指出来哦 提供了三种方式 切换db的方法 1- 第一种方式最简单 先看看redis 的yml 文件…

Redis基本介绍

文章目录 1.Redis简介2.Redis应用场景3.Redis单线程模型4.Redis常用命令5.Redis数据结构6.SpringBoot整合Redis框架 参考蚂蚁课堂 1.Redis简介 Redis属于No-sql数据库类似于MongoDB,是一个完全开源免费的一个高性能的key-value数据库。它是基于内存的数据库&#…

DB2的HADR的搭建

整理这篇文档主要记录复制搭建过程中遇到的问题,被其中一个搞了好久才突然一下子明白过来。。。。 1.备份恢复的时候报错:SQL0970N The system attempted to write to a read-only file. SQLSTATE55009 2.SQL1768N Unable to start HADR. Reason cod…

gaussDB安装

1、用winSCP连接弹性服务器,将windows下的gaussDB安装包复制到linux下 2、将GaussDB安装包从root目录下复制一份到/gs目录下 3、在当前目录解压缩 4、打开配置文件 vi /etc/profile 添加如下命令 ulimit -c unlimited 5、打开系统配置文件 vi /etc/sysctl.c…

redis 如何切换db

文章来源:http://www.ttlsa.com/redis/redis-database/ redis默认有db0~db15之多。 一台服务器上都快开启200个redis实例了,看着就崩溃了。这么做无非就是想让不同类型的数据属于不同的应用程序而彼此分开。 那么,redis有没有什么方法使不同…

PostgreSQL安装+TimescaleDB安装(Windows)

PostgreSQL安装TimescaleDB安装(Windows) 一、安装环境1.系统2.PostgreSQL安装包3.TimescaleDB安装包4.Visual Studio Community 2019 二、PostgreSQL安装1.安装PostgreSQL2.配置环境变量3.验证是否安装成功 三、TimescaleDB安装1.安装TimescaleDB2.验证…

springboot连接redis并动态切换database(db0到db15)

redis redis db0到db15springboot连接redis添加配置文件application.properties测试是否连接成功redis动态切换database redis db0到db15 可以理解为数据库表这是redis默认提供的16个表 我们可以把不同的数据存在不同的db上 取得时候可以在不同的db拿到不同类型数据 springb…

各种接口

一、DB9与DB25 九针串口 串口是计算机主要的外部接口之一,通过九针串口连接的设备有很多,像串口鼠标、MODEM、手写板等等,九针串口的示意图如上,其各脚的定义如下: 1 DCD 载波检测 2 RXD 接收数据 3 TXD 发送数据…

Altium designer--DB接口DB9/DB15/DB25/DB37/DB50

使用Altium designer软件绘制DB接口封装图如下所示: 具体获取方式见文末链接 (1)DB9针 (2)DB15针 (3)DB25针 (4)DB37针 (5)DB50针 AD封装库链接…

常用接口定义02——DB与DR系列端口

 DB系列与DR系列端子是设计PCB时经常会遇到的,直到前两天才专门找时间总结了一下两个系列接口的区别并从淘宝上找到实物图与之对应。 DB系列: 1.DB9 2.DB15(三排) 母头尺寸图: 3.DB15&#x…

pixhawk罗盘校准进度条没有反应

可能还是得把GPS加上才能校准罗盘。 https://blog.csdn.net/LockeDr/article/details/89320593 https://wenku.baidu.com/view/1b5c56114a2fb4daa58da0116c175f0e7cd11968.html

电子罗盘详解之地磁场和航向角

地球本身具有磁性,所以地球和近地空间之间存在着磁场,叫做地磁场。地磁场的强度为0. 3 至0. 6 高斯,其大小和方向随地点(甚至随时间) 而异。地球本身具有磁性,所以地球和近地空间之间存在着磁场,叫做地磁场。地磁场的强度为0. 3 至0. 6 高斯,其大小和方向随地点(甚至随时间) 而…

倾斜补偿的电子罗盘(2):磁传感器的误差来源、硬磁干扰的校准(3个参数)、实验验证

电子罗盘(2):磁传感器的误差来源、硬磁干扰的校准(3个参数)、实验验证 文章目录 理想情况误差来源内部外部误差模型 硬磁干扰的校准(3个参数)使用的模型最小二乘法 实测结果总结代码和资料MATLAB代码参考资料样机 理想…

倾斜补偿的电子罗盘(3):椭球拟合,磁传感器软磁干扰和硬磁干扰的9参数校准

倾斜补偿的电子罗盘(3):椭球拟合,磁传感器软磁干扰和硬磁干扰的9参数校准 背景 之前提到磁传感器的误差来源,并介绍了消除硬磁干扰的3参数校准。倾斜补偿的电子罗盘(2):磁传感器的误差来源、硬磁干扰的校准(3个参数&…