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

实现可视化大屏的适配,并且解决缩放导致的事件偏移问题

项目上有一个大屏是根据UI的设计稿,已经将宽高固定了,现在要求做适配,这里推荐两款用过的适配插件。

1、v-scale-screen

组件库地址:https://www.npmjs.com/package/v-scale-screen?activeTab=readme

v-scale-screen这个插件利用缩放进行适配,使用起来也非常的简单方便,可支持页面铺满和等比例缩放。

目前有vue2和vue3版本,对应的下载命令如下

//vue2
npm install v-scale-screen@1.0.0

//vue3
npm install v-scale-screen@2.0.0

我这里是vue2版本,所以直接在main.js中引入,注册;然后在需要适配的页面外层套vscalescreen组件,传入宽高即可实现适配,这个插件有一个缺陷,就是如果大屏上有地图,并且地图上有一些点击交互事件,由于缩放的原因,会导致事件偏移。

import VScaleScreen from 'v-scale-screen'
Vue.use(VScaleScreen)
<template>
    <v-scale-screen width="1920" height="1080" fullScreen>
      <div class="screen">
      </div>
    </v-scale-screen>
</template>

2、autofit.js

autofit.js也是一款可以实现自适应的库,更确切来说它是一个封装的很好的工具方法。为什么会选择这个,因为在我的大屏上有地图,地图上有图标并且有点击事件,大屏自适应后会导致事件偏移;而这个方法可以选择哪些dom进行缩放,哪些可以不缩放。

组件地址:https://github.com/Auto-Plugin/autofit.js

文档地址:https://auto-plugin.github.io/index/autofit.js/

这个组件用法非常简单

下载

npm i autofit.js

导入

import autofit from 'autofit.js'

使用

 mounted() {
        autofit.init({
            dh: 1080,
            dw: 1920,
            el:"#app",
            resize: true,
            ignore: [
                {
                    el: "#map_container",//地图容器id
                    // height: window.innerHeight + 'px',//可选,需注明单位
                    // width: window.innerWidth +'px'//可选,需注明单位
                }
            ]
        })
    },

这个工具方法引进来之后,一定要在挂载之后执行,传入对应宽高和dom的id,ignore的作用是忽略缩放的元素(该元素将反向缩放),因为大屏里面有地图,把地图组件的id传进去,就不会让地图进行缩放,最后的事件也不会偏移,点击事件能够正常触发。


http://www.kler.cn/a/410857.html

相关文章:

  • Linux或者Docker中时区查询和修改(差8小时问题)
  • 基于FPGA的2FSK调制-串口收发-带tb仿真文件-实际上板验证成功
  • 抖音SEO矩阵系统:开发技术分享
  • React表单联动
  • webrtc音频模块介绍(二) ADM
  • .net core MVC入门(一)
  • 【源码】Sharding-JDBC源码分析之SQL中分片键路由ShardingSQLRouter的原理
  • pytorch torch.Tensor.item() 方法介绍
  • 【VRChat 改模】开发环境搭建:VCC、VRChat SDK、Unity 等环境配置
  • Pytorch使用手册-Datasets DataLoaders(专题三)
  • 李春葆《数据结构》-课后习题代码题
  • Ubuntu20.04+ROS 进行机械臂抓取仿真:环境搭建(一)
  • Amazon商品详情API接口:电商创新与用户体验的驱动力
  • 电子消费品生产线:科技的时尚,玛哈特矫平机为生产线打造平整面板
  • 【SpringBoot】MapStruct生成映射代码
  • 【论文笔记】Number it: Temporal Grounding Videos like Flipping Manga
  • Qt之QMainWidget相关
  • nohup java -jar supporterSys.jar --spring.profiles.active=prod
  • 5.算法移植第六篇YOLOV5 /onnx模型转换成rknn
  • Oracle 深入学习 Part 8: Managing Tablespaces and Data Files(管理表空间和数据文件)
  • Linux中的权限管理
  • 数据结构 ——— 快速排序算法的实现(hoare版本)
  • 贵州茅台[600519]行情数据接口
  • FFmpegFrameRecorder 切分视频文件时结束条件设置不当导致切分后的文件过短问题
  • 深度解析 Docker:重塑软件部署格局
  • Element UI 打包探索【1】