当前位置: 首页 > news >正文

h5网站开发平台无极小说网

h5网站开发平台,无极小说网,青白江建设网站,乌苏市电力建设工程公司网站开发大屏主要是两方面的工作#xff1a; 大屏之关键-前期的自适应适配根据 ui 稿绘制图表#xff0c;调细节 方案实现方式优点缺点vw vh1.按照设计稿的尺寸#xff0c;将px按比例计算转为vw和vh1.可以动态计算图表的宽高#xff0c;字体等#xff0c;灵活性较高 2.当屏幕…开发大屏主要是两方面的工作 大屏之关键-前期的自适应适配根据 ui 稿绘制图表调细节 方案实现方式优点缺点vw vh1.按照设计稿的尺寸将px按比例计算转为vw和vh1.可以动态计算图表的宽高字体等灵活性较高 2.当屏幕比例跟 ui 稿不一致时不会出现两边留白情况1.每个图表都需要单独做字体、间距、位移的适配比较麻烦 实现思路 按照设计稿的尺寸将px按比例计算转为vw和vh转换公式如下 假设设计稿尺寸为 1920*1080做之前一定问清楚 ui 设计稿的尺寸即 网页宽度1920px 网页高度1080px我们都知道 网页宽度100vw 网页宽度100vh所以在 1920px*1080px 的屏幕分辨率下1920px 100vw1080px 100vh这样一来以一个宽 300px 和 200px 的 div 来说其所占的宽高以 vw 和 vh 为单位计算方式如下:vwDiv (300px / 1920px ) * 100vw vhDiv (200px / 1080px ) * 100vh所以就在 1920*1080 的屏幕分辨率下计算出了单个 div 的宽高当屏幕放大或者缩小时div 还是以 vw 和 vh 作为宽高的就会自动适应不同分辨率的屏幕 css 方案 - sass util.scss // 使用 scss 的 math 函数https://sass-lang.com/documentation/breaking-changes/slash-div use sass:math;// 默认设计稿的宽度 $designWidth: 1920; // 默认设计稿的高度 $designHeight: 1080;// px 转为 vw 的函数 function vw($px) {return math.div($px, $designWidth) * 100vw; }// px 转为 vh 的函数 function vh($px) {return math.div($px, $designHeight) * 100vh; } 在 .vue 中使用 templatediv classbox /div /templatescript export default{name: Box, } /scriptstyle langscss scopedscoped import /assets/scss/util.scss; /* 直接使用 vw 和 vh 函数将像素值传进去得到的就是具体的 vw vh 单位 */ .box{width: vw(300);height: vh(100);font-size: vh(16);background-color: black;margin-left: vw(10);margin-top: vh(10);border: vh(2) solid red; } /style 屏幕变化后图表自动调整 这种使用方式有个弊端就是屏幕尺寸发生变化后需要手动刷新一下才能完成自适应调整 为了解决这个问题你需要在各个图表中监听页面尺寸变化重新调整图表在 vue 项目中最好封装个 resize 的指令在各图表中就只要使用该指令就可以了。 封装 directive // 在directives目录下创建resizeObserver.js文件 // 监听元素大小变化的指令 const map new WeakMap() const ob new ResizeObserver((entries) {for (const entry of entries) {// 获取dom元素的回调const handler map.get(entry.target)//存在回调函数if (handler) {// 将监听的值给回调函数handler({width: entry.borderBoxSize[0].inlineSize,height: entry.borderBoxSize[0].blockSize})}} })export const Resize {mounted(el, binding) {//将dom与回调的关系塞入mapmap.set(el, binding.value)//监听el元素的变化ob.observe(el)},unmounted(el) {//取消监听ob.unobserve(el)} }export default Resize 在directives目录下创建index.js文件 import Resize from ./resizeObserver; // 监听dom宽高变化const directivesList {Resize };const directives {install: function (app) {Object.keys(directivesList).forEach((key) {app.directive(key, directivesList[key]); // 注册});} };export default directives;// 抛出 在vue中使用 !-- vue3 -- templatediv classcontentdiv classbar-content idbar-content v-resizeonResize/divdiv classbar-content idpie-content v-resizeonResize/div/div/template script const onResize (width,height){nextTick((){myChart.resize()myPieChart.resize()myPieChart.clear();//消除当前实例pieInit()//重新渲染echart// myPieChart.setOption(options,true);//重新渲染echart})} onMounted((){barInit()pieInit() })/script 图表字体、间距、位移等尺寸自适应 echarts 的字体大小只支持具体数值像素不能用百分比或者 vw 等尺寸一般字体不会去做自适应当宽高比跟 ui 稿比例出入太大时会出现文字跟图表重叠的情况 这里我们就需要封装一个工具函数来处理图表中文字自适应了 默认情况下这里以你的设计稿是 1920*1080 为例即网页宽度是 1920px (做之前一定问清楚 ui 设计稿的尺寸 把这个函数写在一个单独的工具文件dataUtil.js里面在需要的时候调用 其原理是计算出当前屏幕宽度和默认设计宽度的比值将原始的尺寸乘以该值 另外其它 echarts 的配置项比如间距、定位、边距也可以用该函数 编写 dataUtil.js 工具函数 // Echarts图表字体、间距自适应 export const fitChartSize (size,defalteWidth 1920) {let clientWidth window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth;if (!clientWidth) return size;let scale (clientWidth / defalteWidth);return Number((size*scale).toFixed(3)); } 在vue文件中import import { fitChartSize } from /assets/js/utils.js 调用fitChartSize templatediv classchartsdom refchart v-chart-resize/div /template// 饼状图 let myPieChart {} let options {} const pieInit (){// 基于准备好的dom初始化echarts实例myPieChart echarts.init(document.getElementById(pie-content));options {// backgroundColor: rgb(43, 51, 59),toolbox: {show: true,feature: {mark: {show: true},dataView: {show: true,readOnly: false},magicType: {show: true,type: [pie, funnel]},restore: {show: true},saveAsImage: {show: true}}},calculable: true,tooltip: {trigger: item,formatter: {a}br/{b}:{c}千万元},title: {text: 南丁格尔玫瑰图--PieHalfRose,left: center,top: fitChartSize(20),textStyle: {color: #ccc,fontSize: fitChartSize(18)}},calculable: true,legend: {icon: circle,x: center,y: 15%,data: [义乌市1,义乌市2,义乌市3,义乌市4,义乌市5,义乌市6,义乌市7,义乌市8,义乌市9],textStyle: {color: #fff,fontSize: fitChartSize(12)}},series: [{name: XX线索,type: pie,radius: [fitChartSize(30),fitChartSize(70) ],avoidLabelOverlap: false,startAngle: 0,center: [50%,60%],roseType: area,selectedMode: single,label: {normal: {show: true,formatter: {c}千万元,color: #fff,fontSize: fitChartSize(12)},emphasis: {show: true}},labelLine: {normal: {show: true,smooth: false,length: fitChartSize(20),length2: fitChartSize(10)},emphasis: {show: true}},data: [{value: 600.58,name: 义乌市1,itemStyle: {normal: {color: #f845f1}}},{value: 1100.58,name: 义乌市2,itemStyle: {normal: {color: #ad46f3}}},{value: 1200.58,name: 义乌市3,itemStyle: {normal: {color: #5045f6}}},{value: 1300.58,name: 义乌市4,itemStyle: {normal: {color: #4777f5}}},{value: 1400.58,name: 义乌市5,itemStyle: {normal: {color: #44aff0}}},{value: 1500.58,name: 义乌市6,itemStyle: {normal: {color: #45dbf7}}},{value: 1500.58,name: 义乌市7,itemStyle: {normal: {color: #f6d54a}}},{value: 1600.58,name: 义乌市8,itemStyle: {normal: {color: #f69846}}},{value: 1800,name: 义乌市9,itemStyle: {normal: {color: #ff4343}}},{value: 0,name: ,itemStyle: {normal: {label: {show: false},labelLine: {show: false}}}},{value: 0,name: ,itemStyle: {normal: {label: {show: false},labelLine: {show: false}}}},{value: 0,name: ,itemStyle: {normal: {label: {show: false},labelLine: {show: false}}}},{value: 0,name: ,itemStyle: {normal: {label: {show: false},labelLine: {show: false}}}},{value: 0,name: ,itemStyle: {normal: {label: {show: false},labelLine: {show: false}}}},{value: 0,name: ,itemStyle: {normal: {label: {show: false},labelLine: {show: false}}}},{value: 0,name: ,itemStyle: {normal: {label: {show: false},labelLine: {show: false}}}},{value: 0,name: ,itemStyle: {normal: {label: {show: false},labelLine: {show: false}}}},{value: 0,name: ,itemStyle: {normal: {label: {show: false},labelLine: {show: false}}}}]}]}// 绘制图表myPieChart.setOption(options); }
http://www.hkea.cn/news/14433214/

相关文章:

  • 如何做购物网站推广新乡网站seo优化
  • 网站开通宣传怎么写设计公司名字创意
  • 网站建设玖金手指谷哥三十兰州公司做网站
  • 网站提交入口大全房地产大数据获客软件
  • 个人网站毕业设计作品江门seo全网营销
  • 房屋出租网站模板wordpress批量注册账号
  • 手机上做整蛊网站php做网站首页修改
  • 怀柔手机网站建设装修设计软件网页版
  • 阿里云建站视频陕西富国建设工程有限公司网站
  • 珠海网站开发价格玛纳斯县住房和城乡建设局网站
  • 苏州大学网站建设长沙网络科技公司
  • 做网站要的图片斗鱼河南洛阳网络公司
  • 哈尔滨网站制作专业专科计算机哪个专业最吃香
  • 网站子页面如何做seoWordPress建页面
  • 网站建设开发电销话术巴鱼士设计师服务平台
  • 网站降权原因oa办公系统管理软件
  • 外贸汽车网站制作企业门户网站模板html
  • 帝国cms网站模板怎么在wordpress编辑进入二级页面
  • 网站空间文件夹支付宝 收费 网站开发
  • 长治做网站的公司长沙必去的10个景点
  • 中山网站备案软件开发学校排名
  • 旅游网站建设网站目的回收手表网站
  • hao123网站内蒙古做网站公司
  • wordpress分类图片尺寸吉安seo
  • 网站娱乐一条龙搭建甘露园网站建设
  • 郑州网站建站网站怎么样免费电子版个人简历模板
  • 广州联享品牌网站建设一般通过什么组成局域网
  • 外链收录网站wordpress小工具编辑
  • 怎么做网站二级页面公司网站制作哪个公司好
  • 如何申请建设个人网站淮南网络运营公司