前端css + js +vue +element-ui 实现响应式布局,根据浏览器窗体大小自动响应
前端css + js +vue +element-ui 实现响应式布局,根据浏览器窗体大小自动响应
- 1、环境
- 2、js代码
- 3、代码解释
- 1、定义对象
- 2、定义方法
- 3、监听窗口变化,计算比例值,并赋值给transform 属性
- 4、实现监听
- 3、html 代码
- 4、特别注意
1、环境
我的环境是element-ui vue版的,其他的也可以,主要是css和js的内容
2、js代码
<script>
export default {data() {return {scaledStyle: {transform: '',"transform-origin": "left",},}},mounted() {this.$nextTick(()=> {this.updateScaledStyle()})window.addEventListener('resize', this.updateScaledStyle)},methods: {updateScaledStyle() {let innerWidth = window.innerWidthconst scaleX = innerWidth / 1920;this.scaledStyle.transform = `scale(${scaleX},1)`;}
}
</script>
3、代码解释
1、定义对象
首先在data中定义一个对象
scaledStyle: {transform: '',"transform-origin": "left",},
其实就是css的样式,不过放在了js 里面而已
这里css设置了两个属性
一个是transform
这个属性对div标签的缩放作用,当浏览器窗口或者屏幕大小改变时,就调整这个属性的值,来等比缩放标签的布局。
另一个是transform-origin
这个属性是设置div标签缩放的圆点位置,也就是以什么位置为圆点缩放的,默认是中间点,但是很多时候以中间点作为圆点缩放是不合理的,根据自己的实际需求设置,我这里设置以左边为圆点缩放,就是当窗口页面变化时,左边不动,右边往左边缩放靠拢。
2、定义方法
其次是
methods: {updateScaledStyle() {let innerWidth = window.innerWidthconst scaleX = innerWidth / 1920;this.scaledStyle.transform = `scale(${scaleX},1)`;}
}
这里就是在methods里面定义一个方法,监听窗体的变化,然后计算该缩放多少倍。
window.innerWidth 是获取当前窗口的宽度,window里面还有其他属性,例如 innerHeight 获取窗口的高度等,我这里值改变窗口的宽度,所以获取高度。
const scaleX = innerWidth / 1920; 这个是计算缩放的比例,1920是自己定的,就看正常不缩放时窗口的宽度是多少,如果时1080,那就设置1080,当然也可以是页面的某个div,我这里是整个页面。
说白了就是原始不缩放时的宽高。
3、监听窗口变化,计算比例值,并赋值给transform 属性
最后就是
this.scaledStyle.transform = `scale(${scaleX},1)`;
这里其实就是给transform 属性赋值,transform 属性可以赋两个值,也就是x,y值,横边缩放和竖边缩放,这两个值是这样赋值的 scale(0.7,0.8),这就是横向缩小为原来的0.7倍,竖向缩小为原来的0.8倍。
我这里竖向不缩放所以直接写1,横向是根据当前的窗口宽度和原来的比,得到一个比例值决定缩小还是放大的。
4、实现监听
mounted() {this.$nextTick(()=> {this.updateScaledStyle()})window.addEventListener('resize', this.updateScaledStyle)},
mounted 是vue生命周期中载入后执行的,但是这里还没有渲染dom,获取不到dom。
意思就是获取不到宽高,所以这里加了一个nextTick获取到下一个更新的dom,以保证能够获取到dom。
获取到dom之后去执行更新方法updateScaledStyle
最后一句 window.addEventListener(‘resize’, this.updateScaledStyle) 就是将 updateScaledStyle方法加入到监听事件中,resize 是监听窗口的额变化,然后执行updateScaledStyle方法,起到窗口变化,同时缩放div的效果
3、html 代码
<template><div :style="scaledStyle">// 其他内容</div>
</template>
这里html的代码就简单了,就是定义一个div标签,一个动态的样式。
4、特别注意
这里div里面的所有样式不能用%,例如宽5%,高10%这些百分比的样式。
不然缩放的事样式按百分比缩放会乱。
这是我遇到的问题,你们可以试一下。
个人觉得它这个缩放其实是把div下的所有内容当做一张图一样来缩放,所以你在里面写的固定px值也会跟着缩放。
相关文章:
前端css + js +vue +element-ui 实现响应式布局,根据浏览器窗体大小自动响应
前端css js vue element-ui 实现响应式布局,根据浏览器窗体大小自动响应 1、环境2、js代码3、代码解释1、定义对象2、定义方法3、监听窗口变化,计算比例值,并赋值给transform 属性4、实现监听 3、html 代码4、特别注意 1、环境 我的环境是e…...
小程序生成App:轻量低门槛的开发方式
小程序生成App可以成为一种轻量低门槛的开发App的方式,但是需要根据具体情况进行选择。如果应用需要处理大量数据或需要进行复杂计算,或者需要实现原生特有的功能或交互效果,可能需要选择其他开发方式。 在文章开始之前,我们看看目…...
Linux命名管道进程通信
文章目录 前言一、什么是命名管道通信二、创建方式三、代码示例四、文件进程通信总结 前言 命名管道 是实现进程间通信的强大工具,它提供了一种简单而有效的方式,允许不同进程之间进行可靠的数据交换。不仅可以在同一主机上的不相关进程间进行通信&…...
如何将苹果彻底删除视频找回?试试这3种方法
如今是短视频时代,大家通常会使用苹果手机来拍摄视频,以此记录生活中的美好日常。但是大家都知道视频是十分占空间的,这也经常会出现iPhone内存不足,磁盘崩溃的问题。 当遇到iPhone内存不足的情况时,大家往往会选择清…...
【音视频、chatGpt】h5页面最小化后,再激活后视频停住问题的解决
目录 现象 观察 解决 现象 页面有时候要切换,要最小化;短时间或者几个小时内切换回来,视频可以正常续上;而放置较长时间,几个小时或者一晚上,切换回来后,视频可能卡死 观察 切换页面&#x…...
[CSS] 图片九宫格
效果 index.html <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"/><meta http-equiv"X-UA-Compatible" content"IEedge"/><meta name"viewport" content"widthdevice-…...
MChat-Gpt V1.0.0 (将ChatGpt机器人接入内网供全体使用)
Github>https://github.com/MartinxMax/MChat-Gpt 首页 MChat-Gpt V1.0.0将ChatGpt机器人接入内网供全体使用 你需要一个ChatGpt账户如果您在中国则需要使用代理访问,设置TUN代理模式 安装依赖 选择你的系统进行安装 服务端配置 #python3 ChatGpt_Server.py -h 使用&a…...
日常开发中Git命令指北
Git基本操作 创建化仓库 mkdir 目录 cd 目录 git init配置本地仓库 # 配置用户名,邮箱 git config user.name "cxf" git config user.email "1969612859qq.com" # 查看本地配置(小写的 L) git config -l # 重置配置&a…...
API 测试 | 了解 API 接口概念|电商平台 API 接口测试指南
什么是 API? API 是一个缩写,它代表了一个 pplication P AGC 软件覆盖整个房间。API 是用于构建软件应用程序的一组例程,协议和工具。API 指定一个软件程序应如何与其他软件程序进行交互。 例行程序:执行特定任务的程序。例程也称…...
【计算机组成原理】24王道考研笔记——第三章 存储系统
第三章 存储系统 一、存储系统概述 现代计算机的结构: 1.存储器的层次结构 2.存储器的分类 按层次: 按介质: 按存储方式: 按信息的可更改性: 按信息的可保存性: 3.存储器的性能指标 二、主存储器 1.基本…...
学习C语言的好处:
基础编程语言:C语言是其他编程语言的基础,学习C语言可为后续学习打下坚实基础,广泛应用于嵌入式系统、操作系统、网络协议等。 简单易学:C语言语法简单易懂,适合初学者。只需文本编辑器和编译器,即可开始编…...
基于k8s的devOps自动化运维平台架构设计(中英文版本)
▲ 点击上方"DevOps和k8s全栈技术"关注公众号 In the rapidly evolving landscape of software development and IT operations, DevOps has emerged as a transformative approach to bridge the gap between development and operations teams. One of the key ena…...
P450进阶款无人机室内定位功能研测
在以往的Prometheus 450(P450)无人机上,我们搭载的是Intel Realsense T265定位模块,使用USB连接方式挂载到机载计算机allspark上,通过机载上SDK驱动T265运行并输出SLAM信息,以此来实现室内定位功能。 为进…...
深度学习,计算机视觉任务
目录 计算机视觉任务 1.K近邻算法 2.得分函数 3.损失函数的作用 4.向前传播整体流程 5.反向传播计算方法 计算机视觉任务 机器学习的流程: 数据获取 特征工程 建立模型 评估与应用 计算机视觉: 图像表示:计算机眼中的图像&#…...
使用 Docker 部署 canal 服务实现MySQL和ES实时同步
文章目录 0. 环境介绍0. 前置步骤1. 安装Kibana和Elasticsearch2. 安装Canal和Canal Adapter2.1 修改数据库配置2.1.1 修改配置2.1.2 验证mysql binlog配置2.1.3 查看日志文件2.1.4 用JDBC代码插入数据库 2.2 安装Canal Server2.3 安装Canal Adapter修改两处配置文件配置文件取…...
const易错详解
const对比 常量指针 int b; (1)const int *a &b;//常量指针(2)int const *a &b; //常量指针常量指针:指向的变量值不能被修改 
Rust 编程小技巧(7) 1. 结构体 Display trait 结构体的两种形式,对应的成员取法不同; 前者用 self.成员变量名 self.x, self.y;后者用 self.成员索引号 self.0, self.1, self.2, ...... use std::fmt::Display; use std::fmt::Result; us…...
爬虫程序中使用爬虫ip的优势
作为一名爬虫技术员,我发现在爬虫程序中使用代理IP可以提升爬取效率和匿名性。今天,我就来详细讲解一下代理IP在爬虫程序中的工作原理及应用。 首先,我们来了解一下代理IP在爬虫程序中的工作原理。当我们使用爬虫程序进行数据采集时…...
别再只用DWA了!ROS Melodic下TEB、DWB等5种局部规划器保姆级配置与实战对比
别再只用DWA了!ROS Melodic下5种局部规划器深度评测与工程实践指南 差速驱动机器人在仓库货架间穿梭时突然"卡死",在狭窄走廊中频繁出现路径震荡,遇到动态行人时避障反应迟钝——这些场景是否让你反复调整DWA参数到怀疑人生&#x…...
Trae 国际版下载地址
Trae 国际版官方网站下载页:https://www.trae.ai/download...
Leetcode只二叉树中序遍历(python解法)
1.题目描述 示例 1: 输入:root [1,null,2,3] 输出:[1,3,2]示例 2: 输入:root [] 输出:[]示例 3: 输入:root [1] 输出:[1]2.解决方法: 中序遍历就是先遍历左子树然后…...
Cocos Creator 3.x 高维护性打字机对话系统设计与实现
在 Cocos Creator 项目中,对话系统是 RPG、冒险、视觉小说等类型游戏的核心功能之一。如何设计一个维护性高、可扩展、策划友好、支持存档的打字机(Typewriter)系统,是许多开发者面临的挑战。 该系统采用组件化 配置化 JSON 数…...
从DINO Score到LLaVA:拆解SPAA论文如何用“双考官”机制筛选高质量AI修图
从DINO Score到LLaVA:构建AI图像编辑的"双考官"质量评估体系 在AI图像编辑技术快速发展的今天,如何系统评估生成结果的质量已成为产品落地的关键瓶颈。传统方法往往依赖人工审核或单一指标,既难以规模化又无法全面捕捉图像修改的语…...
工业级模拟量采集模块:空气温湿度采集,大棚环境全自动
模拟量采集模块在智慧农业中扮演着“神经末梢”的角色,负责将土壤/水体的温湿度、EC/pH、溶氧、光照等连续物理量转化为数字信号,为精准灌溉、水肥一体、水质调控提供可靠数据入口,直接决定生产决策的准确性与效率。一、系统架构感知层&#…...
为什么92%的.NET团队在.NET 9发布30天内未启用低代码?揭秘微软未公开的Runtime沙箱限制与IL修剪兼容性断层
第一章:低代码在.NET 9生态中的战略定位与现实落差.NET 9 将“开发者生产力”列为首要设计目标,官方路线图明确将低代码能力纳入平台级支持范畴——包括对 Microsoft.Extensions.LowCode 命名空间的首次正式引入、Blazor Hybrid 中内建的可视化组件绑定引…...
避开这3个坑!用MateChat对接企业私有模型的实战经验分享
避开这3个坑!用MateChat对接企业私有模型的实战经验分享 当企业决定将AI能力深度整合到CRM系统时,数据安全和系统稳定性往往成为技术负责人最头疼的问题。去年我们为某跨国零售集团部署MateChat私有化方案时,曾因Ollama服务崩溃导致整个销售团…...
最新陪玩陪聊系统网站源码 娱乐交友系统公众号版
内容目录一、详细介绍二、效果展示1.部分代码2.效果图展示一、详细介绍 最新陪玩陪聊系统网站源码 娱乐交友系统 附安装教程 二、效果展示 1.部分代码 代码如下(示例): <section id"cliens" class"cliens section-bg&…...
让Windows任务栏呼吸起来:透明美学与智能动态的完美结合
让Windows任务栏呼吸起来:透明美学与智能动态的完美结合 【免费下载链接】TranslucentTB A lightweight utility that makes the Windows taskbar translucent/transparent. 项目地址: https://gitcode.com/gh_mirrors/tr/TranslucentTB 你是否曾盯着Windows…...
