Html5大屏数据可视化开发的实现


Posted in HTML / CSS onJune 11, 2021

项目中需要做一个数据展示用的看板,初接到任务觉得这个没有什么难度,做个漂亮的网页浏览器全屏就可以了。可是实际做的过程中碰见了问题。

第一:浏览器不能有横向和纵向的滚动条,没有鼠标的滚动操作过程。

第二:有各类尺寸的屏,除了在九宫格拼接屏上完美显示,还要同时满足普通用户的电脑端显示。电脑的客户分辨率可能是1399*768或1920*1080等各类尺寸的分辨率。

利用传统网页制作从上到小的制作方式已经不能满足需求了。例如:

下面的对比图:一个是1902*1080 ,一个是1366*768的屏幕,很明显高分辨率的屏显示的内容多些。

Html5大屏数据可视化开发的实现

那么如何做到大屏上内容动态调整适合屏幕展示呢?

响应式媒体查询、rem,js控制尺寸还是其他方法呢?最开始觉得响应式媒体查询就可以满足我的需求,的确是可以精细化控制,可是时间有限,容不得我花费较长时间,而且写多套尺寸的css 我觉得工作量不少,界面元素一多,要照顾的地方也非常多。js控制也尝试过,不适合,要resize调整的项目多。总之,纠结了半天。

后来买了一个基础版的DataV,做了开发,但DataV的可编程型不高,要多花费银子买企业版!最后问题还是回归到要H5制作大屏的需求上来。DataV的适屏做的很好,何不借鉴下呢,F12查看源码,看到了body 的scale css属性,大概就明白了做法,于是乎开工做。原理就是用一个基础尺寸比如1920*1080来做开发和布局,最后利用客户端浏览器的尺寸,按一定的计算比例做缩放。

关键的代码片段:

var ratio = $(window).height() / 1080;
        console.log(ratio);
        $('body').css({
            transform: "scale(" + ratio + ")",
            transformOrigin: "left top",
            backgroundSize: 100 * (window.screen.width / $(window).width() * ratio) + "%" + ' 100%',
            backgroundPosition: ($(window).width() - $('body').width() * ratio) / 2 + "px top",
            marginLeft: ($(window).width() - $('body').width() * ratio) / 2
        });

利用这个原理顺利完成了大屏的开发:效果还不错,暂时没有碰见坑!

效果如下:把浏览器缩到最小:

Html5大屏数据可视化开发的实现

全屏情况下:

Html5大屏数据可视化开发的实现

到此这篇关于Html5大屏数据可视化开发的实现的文章就介绍到这了,更多相关Html5数据可视化内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

 
HTML / CSS 相关文章推荐
CSS3 中的@keyframes介绍
Sep 02 HTML / CSS
深入浅析css3 中display box使用方法
Nov 25 HTML / CSS
详解CSS3浏览器兼容
Dec 14 HTML / CSS
CSS3 中filter(滤镜)属性使用详解
Apr 07 HTML / CSS
详解HTML5 LocalStorage 本地存储
Dec 23 HTML / CSS
Android本地应用打开方法——通过html5写连接
Mar 11 HTML / CSS
HTML5 新旧语法标记对我们有什么好处
Dec 13 HTML / CSS
基于canvas使用贝塞尔曲线平滑拟合折线段的方法
Jan 10 HTML / CSS
将SVG图引入到HTML页面的实现
Sep 20 HTML / CSS
HTML5中input输入框默认提示文字向左向右移动的示例代码
Sep 10 HTML / CSS
CSS3点击按钮圆形进度打钩效果的实现代码
Mar 30 HTML / CSS
CSS三大特性继承性、层叠性和优先级详解
Jan 18 HTML / CSS
关于html选择框创建占位符的问题
Jun 09 #HTML / CSS
html实现弹窗的实例
Jun 09 #HTML / CSS
html css3不拉伸图片显示效果
html2 canvas svg不能识别的解决方案
Jun 03 #HTML / CSS
HTML+CSS 实现顶部导航栏菜单制作
Jun 03 #HTML / CSS
CSS极坐标的实例代码
css height属性中的calc方法详解
Jun 03 #HTML / CSS
You might like
php过滤XSS攻击的函数
2013/11/12 PHP
ThinkPHP分组下自定义标签库实例
2014/11/01 PHP
CentOS6.5 编译安装lnmp环境
2014/12/21 PHP
分享自定义的几个PHP功能函数
2015/04/15 PHP
PHP pear安装配置教程
2016/05/14 PHP
如何直接访问php实例对象中的private属性详解
2017/10/12 PHP
通过XMLHttpRequest和jQuery实现ajax的几种方式
2015/08/28 Javascript
JS实现自动固定顶部的悬浮菜单栏效果
2015/09/16 Javascript
如何根据百度地图计算出两地之间的驾驶距离(两种语言js和C#)
2015/10/29 Javascript
简单实现JS对dom操作封装
2015/12/02 Javascript
js+html获取系统当前时间
2017/11/10 Javascript
JavaScript程序设计高级算法之动态规划实例分析
2017/11/24 Javascript
简单的三步vuex入门
2018/05/20 Javascript
vue 录制视频并压缩视频文件的方法
2018/07/27 Javascript
关于vue编译版本引入的问题的解决
2018/09/17 Javascript
nodejs遍历文件夹下并操作HTML/CSS/JS/PNG/JPG的方法
2018/11/01 NodeJs
vue中的双向数据绑定原理与常见操作技巧详解
2020/03/16 Javascript
简单了解vue 插值表达式Mustache
2020/07/22 Javascript
WebStorm中如何将自己的代码上传到github示例详解
2020/10/28 Javascript
为什么推荐使用JSX开发Vue3
2020/12/28 Vue.js
[01:05]DOTA2完美大师赛趣味视频之选手教你打职业
2017/11/23 DOTA
python计算两个地址之间的距离方法
2018/06/09 Python
python中的二维列表实例详解
2018/06/19 Python
pytorch实现建立自己的数据集(以mnist为例)
2020/01/18 Python
pycharm通过anaconda安装pyqt5的教程
2020/03/24 Python
Django实现图片上传功能步骤解析
2020/04/22 Python
简单介绍一下pyinstaller打包以及安全性的实现
2020/06/02 Python
英国网上花店:Bunches
2016/11/29 全球购物
战略合作协议书范本
2014/04/18 职场文书
党员干部群众路线个人整改措施
2014/09/18 职场文书
2014年教研员工作总结
2014/12/23 职场文书
党校学习个人总结
2015/02/15 职场文书
2016年国培心得体会及反思
2016/01/13 职场文书
vue实现列表垂直无缝滚动
2022/04/08 Vue.js
Java存储没有重复元素的数组
2022/04/29 Java/Android
Nginx报404错误的详细解决方法
2022/07/23 Servers