vue实现进度条+背景定位

news2024/7/4 5:46:24

最近在做一个数字孪生项目,用于展示地铁车辆的进场动画及部件,使用的vue+unity,但是
unity模型在加载完成之前会有个加载进度条,页面背景色是黑色,中间只有个一进度条框
在这里插入图片描述
可以看到很单调很丑,并且客户也不满意,然后大哥想着在模型加载完之前,用个背景图片整体遮住,在加载完模型后,在把背景图片隐藏,现在unity会返回个模型加载进度的方法,然后前端调用方法,实时显示进度

这是背景图片
在这里插入图片描述

最终效果

代码如下

<div id="load_wrap" v-show="fullscreenLoading">
      <div id="load_room">
        <div id="load_contain">
          <div id="load_content">
          </div>
          <img id="load_train" src="@assets/3d2/train2.png" alt="">
        </div>
        <div id="load_title"></div>
      </div>
    </div>

script部分

mounted(){
    
    this.windowHeight = window.screen.height
    this.windowWidth = window.screen.width
    let that=this;
     window.top.addEventListener('message', function(e) {
      that.unityWatch(e);
    }, false, 999, true);
  },
methods:{
	let load_contain = document.querySelector("#load_contain");
      let content = document.querySelector("#load_content");
      let loadTitle = document.querySelector("#load_title");
      let train = document.querySelector("#load_train");
      let train_width = parseFloat(window.getComputedStyle(train)["width"]);
      let load_contain_width = parseFloat(window.getComputedStyle(load_contain)["width"]);
      let contain_width =load_contain_width-train_width;
      //减去车的宽度
      let content_width;
      let bei = 100 / contain_width;
      let speed='';
      if(this.fullscreenLoading==true){
        if(e.data.params){
          speed=e.data.params.percent/100;
        }
      }
      let num = 0;
      num=contain_width*speed;
      content_width = content.style["width"] = num + "px";
      content_width = train.style["left"] = num + "px";
      loadTitle.innerHTML = `<span>当前进度:${parseInt(num * bei)}%</span>`;
      if (parseInt(num * bei) == "100") {
        loadTitle.innerHTML = `<span>加载完成</span>`;
      }
}

style部分

#load_wrap{
  width: 24rem;
  height: 100%;
  background-image: url('../../assets/3d2/trainBg2.png');
  background-size: cover;
  background-repeat: no-repeat;
  position: fixed;
  top:0;
  left:0;
  right: 0;
  bottom: 0;
  z-index: 999999;
}
#load_room{
  width: 100%;
  height: 9.5625rem;
  position: absolute;
  left:0;
  top:0;
  background-image: url("../../assets/3d2/room.png");
  background-repeat: no-repeat;
  background-size: contain;
  z-index: 100;
}
#load_contain {
  width: calc(100% - 2rem);
  height: 0.25rem;
  position: absolute;
  left:1rem;
  bottom:0;
  z-index: 120;
}
#load_title{
  width:100%;
  height: 0.25rem;
  position: absolute;
  left:0;
  bottom:-20px;
  font-size: 0.375rem;
  color: #406a87;
  text-align: center;
  font-family: digifacewide;
}
#load_title span {
  line-height: 0.25rem;
  position: absolute;
  text-align: center;
  left: calc(50% - 0.5rem);
}
#load_content {
  width: 0px;
  height: 0.25rem;
  z-index: 100;
}
#load_train{
  width: 6.25rem;
  height: 0.525rem;
  position: absolute;
  top:-0.275rem;
}

这里的1rem默认是80px;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1045418.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2023软件测试八股文,涵盖所有面试题

Part1 1、你的测试职业发展是什么&#xff1f; 测试经验越多&#xff0c;测试能力越高。所以我的职业发展是需要时间积累的&#xff0c;一步步向着高级测试工程师奔去。而且我也有初步的职业规划&#xff0c;前3年积累测试经验&#xff0c;按如何做好测试工程师的要点去要求自…

如何优化前端性能?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 优化前端性能1. 减少HTTP请求2. 压缩资源3. 使用浏览器缓存4. 使用CDN5. 延迟加载6. 使用响应式设计7. 减少重绘和回流8. 代码优化9. 使用现代Web技术 ⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前…

vue event bus 事件总线

vue event bus 事件总线 创建 工程&#xff1a; H:\java_work\java_springboot\vue_study ctrl按住不放 右键 悬着 powershell H:\java_work\java_springboot\js_study\Vue2_3入门到实战-配套资料\01-随堂代码素材\day04\准备代码\08-事件总线-扩展 vue --version vue crea…

免杀对抗-内存加载-shellcode转换-UUID+MAC+IPV4

内存加载-UUID地址-ShellCode转换 介绍&#xff1a;通用唯一识别码(UUID),是用于计算机体系中以识别信息数目的一个128位标识符&#xff0c;根据标准方法生成&#xff0c;不依赖中央机构的注册和分配&#xff0c;UUID具有唯一性。 演示语言&#xff1a;c 1.使用以下代码将c语言…

如何使用 API 接口获取商品数据,从申请 API 接口、使用 API 接口到实际应用,一一讲解

在当今的数字化时代&#xff0c;应用程序接口&#xff08;API&#xff09;已经成为数据获取的重要通道。API 接口使得不同的应用程序能够方便地进行数据交换&#xff0c;从而促进了信息的广泛传播和利用。在众多的数据源中&#xff0c;商品数据是一个非常重要的领域&#xff0c…

leetcode面试题0808有重复字符串的排列组合

描述 输入一个长度为 n 字符串&#xff0c;打印出该字符串中字符的所有排列&#xff0c;你可以以任意顺序返回这个字符串数组。 例如输入字符串ABC,则输出由字符A,B,C所能排列出来的所有字符串ABC,ACB,BAC,BCA,CBA和CAB。 数据范围&#xff1a;n<10 要求&#xff1a;空间复…

Mysql高级语句(视图表 、存储过程、条件语句、循环语句)

Mysql高级语句&#xff08;视图表 、存储过程、条件语句、循环语句&#xff09; 一、 CREATE VIEW&#xff08;视图&#xff09;1.1、 视图表概述1.2、 视图表能否修改&#xff1f;&#xff08;面试题&#xff09;1.3、 基本语法1.3.1、 创建1.3.2、 查看1.3.3 、删除 1.4、 通…

基于微信小程序的场地预约系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言系统主要功能&#xff1a;具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计…

react create-react-app v5 从零搭建项目

前言&#xff1a; 好久没用 create-react-app做项目了&#xff0c;这次为了个h5项目&#xff0c;就几个页面&#xff0c;决定自己搭建一个&#xff08;ps:mmp 好久没用&#xff0c;搭建的时候遇到一堆问题&#xff09;。 我之前都是使用 umi 。后台管理系统的项目 使用 antd-…

你听说过推挽电路吗?避免交越失真

推挽电路就是用两个三级管或者场效应管构成的放大电路&#xff0c;这个电路的特点就是输出电阻小&#xff0c;能够驱动大的负载&#xff0c;从而能够使得单片机管脚直接驱动发光二极管、蜂鸣器。上面的三极管是N型三极管&#xff0c;下面的三极管是P型三极管&#xff0c; 当输入…

【深度学习实验】卷积神经网络(五):深度卷积神经网络经典模型——VGG网络(卷积层、池化层、全连接层)

目录 一、实验介绍 二、实验环境 1. 配置虚拟环境 2. 库版本介绍 三、实验内容 0. 导入必要的工具包 1. conv_layer&#xff08;创建卷积块&#xff09; 2. vgg_conv_block&#xff08;卷积模块&#xff1a;卷积层*n、池化层&#xff09; 3. vgg_fc_layer&#xff08;…

华为云云耀云服务器L实例评测|华为云云耀云服务器docker部署srs,可使用HLS协议

华为云云耀云服务器L实例评测&#xff5c;华为云云耀云服务器docker部署srs&#xff0c;可使用HLS协议 什么是华为云云耀云L实例 云耀云服务器L实例&#xff0c;面向初创企业和开发者打造的全新轻量应用云服务器。提供丰富严选的应用镜像&#xff0c;实现应用一键部署&#x…

信创办公–基于WPS的EXCEL最佳实践系列 (获取外部数据)

信创办公–基于WPS的EXCEL最佳实践系列 &#xff08;获取外部数据&#xff09; 目录 应用背景操作步骤1、导入数据2、刷新数据 应用背景 通常企业的数据会存储在数据库或不同的系统中&#xff0c;而我们想要在自己用的工作WPS的excel表格里使用这些数据&#xff0c;我们可以使…

QT入门10个小demo——MP4视频播放器

&#x1f64c;秋名山码民的主页 &#x1f602;oi退役选手&#xff0c;Java、大数据、单片机、IoT均有所涉猎&#xff0c;热爱技术&#xff0c;技术无罪 &#x1f389;欢迎关注&#x1f50e;点赞&#x1f44d;收藏⭐️留言&#x1f4dd; 获取源码&#xff0c;添加WX 目录 一、前…

美摄AIGC创新引擎,助力企业快速搭建AIGC能力(一)

AIGC作为当下最热的重要赛道&#xff0c;迅速在视频、图像、文案、绘画等生产创作领域出圈&#xff0c;吸引了百度、阿里、腾讯、谷歌等众多互联网大厂&#xff0c;纷纷布局和计划推出AIGC类的产品。 全新的视频内容生产方式&#xff0c;AIGC利用人工智能技术实现视频内容的自…

DEV gridview多表头设计

先上图&#xff1a; 第一步转化gridview变成bandedGridview类型 一步步按照自己想要的格式添加&#xff0c;先把表头格式全部弄好&#xff0c;然后在拖拉对应的列。 注意&#xff1a;全部弄完后把列表头设置不可见

踩坑 | vue项目运行后使用require()图片也不显示

文章目录 踩坑 | vue项目运行后使用require()图片也不显示问题描述解决办法1&#xff1a;src属性直接传入地址解决办法2 踩坑 | vue项目运行后使用require()图片也不显示 问题描述 在网上查阅之后&#xff0c;发现结论是在使用vue动态加载图片时&#xff0c;必须使用require。…

一篇爆款产品软文怎么写?媒介盒子告诉你三步

随着数字技术的加速发展&#xff0c;企业推广产品的方式已经逐渐从线下过度到线上&#xff0c;而线上推广中比较常见的方式就是软文推广&#xff0c;软文推广成本较低&#xff0c;用户接受度也更高&#xff0c;但是一篇爆款产品软文应该怎么写呢&#xff1f;下面就让媒介盒子告…

nvm安装后node或npm不是内部或外部命令

nvm安装后出现node或npm不是内部或外部命令 进行以下步骤解决 找到nvm安装所在位置&#xff0c;新建一个空的nodejs文件夹 打开 windowr —> sysdm.cpl —> 高级 —>环境变量 将下图中两个位置的地址改成刚刚新建的nodejs空文件夹所在的位置 nvm安装后都是会自动添加…

Qwen-VL:多功能视觉语言模型,能理解、能定位、能阅读等

Overview 总览摘要1 引言2 方法2.1 模型结构2.2 输入输出 3 训练3.1 预训练3.2 多任务预训练3.3 监督finetune 4 评测4.1 图像文本描述和视觉问答4.2 面向文本的视觉问答4.3 指代表达理解4.4 视觉语言任务中的小样本学习4.4 现实用户行为下的指令遵循 5 相关工作6 总结与展望附…