记一个CSS样式实现思路(鼠标聚焦时完整内容,失焦时只显示部分)

效果图

默认状态

鼠标悬浮时 缓慢展示完整内容

实现方法

方法一

     使用max-width,当鼠标悬浮时,设置max-width为一个足够大的数值

<div class="flex justify-center align-center mt-20px">
   <div v-for="(item, key) in ssoList" :key="key" class="ssoBtn flex ml-20px">
      <Icon size="28" :icon="getSSOIcon(item)" color="#CB3F21" />
      <div class="title"> {{ item.appName }}</div>
    </div>
</div>
.ssoBtn {
  max-width: 48px;
  height: 48px;
  padding: 9px;
  line-height: 30px;
  border-radius: 24px;
  border: 1px solid #e6e9f0;
  color: #262e43;
  cursor: pointer;
  transition: all 1s;
  overflow: hidden;
}
.title {
  display: block;
  white-space: nowrap;
  margin-left: 12px;
}
.ssoBtn:hover {
  max-width: 400px;
}
.ssoBtn + .ssoBtn {
  margin-left: 20px;
}

方法二

鼠标悬浮时计算出当前元素的宽度 重新赋值,鼠标失焦时恢复默认宽度

  • html

<div v-for="(line, lkey) in ssoList" :key="lkey">
  <div class="flex justify-center align-center mt-20px">
      <div
         v-for="(item, key) in line"
         :key="key"
         class="ssoBtn flex"
         @mouseenter="calBtnWidth"
         @mouseleave="clearBtnWidth"
         @click="handleSSOLogin(item)"
       >
      <Icon size="28" :icon="getSSOIcon(item)" color="#CB3F21" />
      <div class="title"> {{ t('login.sso.loginWithAPP', { app: item.appName }) }}</div>
   </div>
  </div>
</div>
  • ts

calBtnWidthCount值是为了只保证只在鼠标刚聚焦上时计算,防止失焦前重复计算(大概是这个原因,好久前的代码,已经忘记为什么要加一个判断了)
<script lang="ts" setup>

const ssoBtnWidth = ref('48px')
const calBtnWidthCount = ref(1)
const calBtnWidth = (e) => {
  const scrollWidth = e.target.scrollWidth
  if (calBtnWidthCount.value === 1) {
    console.log('==========', e.target.scrollWidth)
    ssoBtnWidth.value = scrollWidth + 'px'
    calBtnWidthCount.value++
  }
}
const clearBtnWidth = () => {
  calBtnWidthCount.value = 1
}

</script>
  • css
.ssoBtn {
  width: 48px;
  height: 48px;
  padding: 9px;
  line-height: 30px;
  border-radius: 24px;
  border: 1px solid #e6e9f0;
  color: #262e43;
  cursor: pointer;
  transition: all 1s;
  overflow: hidden;
}
.title {
  display: block;
  white-space: nowrap;
  margin-left: 12px;
}
.ssoBtn:hover {
  width: v-bind(ssoBtnWidth);
}
.ssoBtn + .ssoBtn {
  margin-left: 20px;
}

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

HTML----JavaScript操作对象BOM对象

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 本章要求 了解BOM模型掌握BOM模型实际应用 一.BOM模型概述 BOM&#xff08;浏览器对象模型&#xff09;是JavaScript中的一个重要概念&#xff0c;它提供了一组用于控制浏览器窗口和页面内容的…

基于 ESP32-C3 开启 Flash 加密和安全启动并进行 OTA 测试

软件&#xff1a; esp-idf v5.1.2 硬件&#xff1a; ESP32-C3 board 1. 首先&#xff0c;准备一个明文固件 hello-world.bin 基于 esp-idf-v5.1.2\examples\get-started\hello_world 例程&#xff0c;使用如下指令&#xff0c;直接编译&#xff0c;获取明文固件 hello-worl…

大数据时代快速获取数据方法,爬虫技术理论剖析与实战演练

一、教程描述 人工智能和机器学习&#xff0c;都离不开数据&#xff0c;若是没有数据&#xff0c;再好的算法&#xff0c;再好的模型&#xff0c;都没有用武之地。数据不仅是指现成的数据库&#xff0c;更加是指每天增加的海量互联网数据。本套教程将通过多个实战项目&#xf…

2024上海国际智慧城市,物联网,大数据博览会(上海智博会)

随着科技的飞速发展&#xff0c;智慧城市、物联网与大数据已经成为当今社会发展的重要驱动力。作为国内最具影响力的科技展会之一&#xff0c;2024上海国际智慧城市,物联网,大数据博览会&#xff08;简称:世亚智博会&#xff09;汇聚了全球顶尖的智慧城市、物联网与大数据技术&…

JMeter之测试WebService接口

JMeter之测试WebService接口 1 背景2 目的3 介绍4 具体操作4.1 soapUI调用4.2 JMeter工具调用4.3 操作步骤流程4.3 重点 1 背景 WebService应用的范围是非常广&#xff0c;任何需要跨平台、跨系统进行数据交换和功能调用的场景都可以用此来实现&#xff0c;在实际的工作中也常常…

k8s-yaml格式

三种常见的项目发布方式&#xff1a; 蓝绿发布&#xff1a; 金丝雀发布&#xff08;灰度发布&#xff09;&#xff1a; 滚动发布&#xff1a; 应用程序升级&#xff0c;面临的最大的问题&#xff0c;就是新旧业务的更换&#xff0c;立项--定稿--需求发布--开发--测试--发布&…

有效边表填充算法

有效边表填充算法 如何填充示例三角形 按照扫描线从上往下的顺序&#xff0c;依次处理和多边形相交的扫描线&#xff0c;对于当前处理的扫描线找到和它相交的所有边的交点&#xff0c;按照交点横坐标从小到大的顺序&#xff0c;两个两个配对&#xff0c;配对之后填充每对交点之…

踩了Vue2运行机制的坑-响应式原理

最近遇到一个很奇怪的bug&#xff1a; 前置&#xff1a;后端接口返回的数据是这样的&#xff1a; ①首先在store中取出后端返回的数据Ares.data&#xff0c;在这里打印输出是正常的 ②然后在vue页面上再取出A.data也就是res.data.data&#xff0c;以及其它几个字段即res.data.X…

Spring技术内幕笔记之IOC的实现

IOC容器的实现 依赖反转&#xff1a; 依赖对象的获得被反转了&#xff0c;于是依赖反转更名为&#xff1a;依赖注入。许多应用都是由两个或者多个类通过彼此的合作来实现业务逻辑的&#xff0c;这使得每个对象都需要与其合作的对象的引用&#xff0c;如果这个获取过程需要自身…

解决报错:找不到显卡

今天做实验碰到一个问题&#xff1a;torch找不到显卡&#xff1a; 打开任务管理器&#xff0c;独显直接没了&#xff0c;一度以为是要去修电脑了&#xff0c;突然想到上次做实验爆显存&#xff0c;屏蔽了gpu用cpu训练&#xff1a; import os os.environ["CUDA_DEVICE_OR…

线性代数笔记3 1.1

学习视频&#xff1a; 2.2 矩阵运算&#xff08;二&#xff09;_哔哩哔哩_bilibili 包括内容&#xff1a; p10矩阵运算&#xff08;二&#xff09; p11特殊矩阵 p12逆矩阵&#xff08;一&#xff09; p13逆矩阵&#xff08;二&#xff09;

网络四元组

文章目录 网络四元组 今天我们来聊聊 网络四元组 网络四元组 四元组&#xff0c;简单理解就是在 TCP 协议中&#xff0c;去确定一个客户端连接的组成要素&#xff0c;它包括源 IP 地址、目标 IP 地址、源端口号、目标端口号。 正常情况下&#xff0c;我们对于网络通信的认识可…

【C语言】Ubuntu 22上用GTK写GUI程序

一、GTK介绍 GTK (GIMP Toolkit) 是一个多平台的图形用户界面工具包。它最初是为图像处理程序 GIMP 开发的&#xff0c;后来演变成为许多操作系统上开发图形界面应用程序的通用库。GTK 是用C语言编写的&#xff0c;并且是自由和开源软件&#xff0c;遵循LGPL (GNU Lesser Gene…

Go中interface != nil不一定不是nil

摘要&#xff1a; interface{} 值 ! nil不一定不是nil&#xff0c;应使用reflect库判断是否是nil。 测试示例&#xff1a; // todo interface ! nil 不一定 不是nil var value map[string]interface{} reqMap : make(map[string]interface{}) reqMap["key"] valu…

计算机网络学习笔记(四)

文章目录 1.介绍一下HTTPS的流程。2.介绍一下HTTP的失败码。3.说一说你知道的http状态码。4. 301和302有什么区别&#xff1f;5.302和304有什么区别&#xff1f;6. 请描述一次完整的HTTP请求的过程。7.什么是重定向&#xff1f;8. 重定向和请求转发有什么区别&#xff1f;9.介绍…

计算机毕业设计 基于SSM的果蔬作物疾病防治系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

【Amazon Bedrock】体验 Bedrock 的基本功能,为构建强大安全的LLM应用而准备

文章目录 一、什么是Amazon Bedrock&#xff1f;二、为什么选择 Amazon Bedrock三、访问Amazon Bedrock UI四、与Amazon Bedrock 聊天五、对比Amazon Bedrock 不同基础模型的返回结果六、让Amazon Bedrock处理文本七、利用Amazon Bedrock生成图片八、参考链接 一、什么是Amazon…

Wnmp本地部署结合内网穿透实现任意浏览器远程访问本地服务

最近&#xff0c;我发现了一个超级强大的人工智能学习网站。它以通俗易懂的方式呈现复杂的概念&#xff0c;而且内容风趣幽默。我觉得它对大家可能会有所帮助&#xff0c;所以我在此分享。点击这里跳转到网站。 文章目录 前言1.Wnmp下载安装2.Wnmp设置3.安装cpolar内网穿透3.1…

从信号处理角度彻底理解FFT

只想速览公式可以转到简明FFT公式 一、FFT起初用于解决的问题 分解复合信号 将复合信号视为若干正弦波与余弦波的叠加&#xff0c;如何得知某个正弦波/余弦波在该信号中的强度&#xff1f; 二、即答 用特定频率的正弦波/余弦波&#xff08;设其为a&#xff09;乘上复合信号…

问界M9激光雷达解说

什么是激光雷达 激光雷达(英文:Lidar),是一种通过发射激光束来测量目标位置、速度等特征量的雷达系统。其工作原理是将激光光束照射到目标物体上,然后通过测量激光光束从发射到反射回来的时间,来计算目标物体的距离、位置、速度等参数。激光雷达通常用于测量地形、地貌、…