display设置显示隐藏,transition过渡不起效果,采用opacity+visibility+dispaly解决问题

display与transition动画冲突问题 display与transition动画冲突 延时 timeout requestAnimationFrame 替代 absolute visibility opacity keyframe 阅读详情
AI摘要

本文介绍了一种使用CSS的visibility和opacity属性实现弹出窗口淡入淡出动画的方法,并提供了具体的实现步骤。

一、场景如下,需要给一个弹出窗设置动画,淡入淡出效果。

在这里插入图片描述
当我们点击按钮123时,对应的下方弹出层展示在页面上,再次点击或点击文档其他处时,我们需要将弹出层隐藏(带有动画效果)。

二、直接采用display:none;display:block;过渡transition不起效果。

从个人理解角度上来说的话,transition对display不起效果的原因是因为,设置display后,浏览器相当于重新更新了,回流了,以至于过渡不起效果,那么我们改如何去巧妙地解决这个问题?

三、解决方案

<style>
// 在style中同时设置visibility、与opacity 
.isNone {
  visibility: visible;
  opacity: 1;
  transition: all 0.5s;
}
.isBlock {
  visibility: hidden;
  opacity: 0;
  transition: all 0.5s;
}
</style>
3.1 visibility与opacity二者区别?

至于为什么要同时设置visibility与opacity,首先我们要知道两者的区别

属性提示
opacity透明度,占据文档位置并不是真的隐藏,设置为0时是可以触发事件的
visibilityvisibility 属性规定元素是否可见,即使不可见的元素也会占据页面上的空间,不会触发事件

我们需要知道的是单独使用visibility、opacity都是不可取的,如果单独使用visibility,就会导致元素没有过渡效果,这个为什么我们可以这样去理解,将visibility的hidden看做0,visibility的visible看做1。而transition则是0-1过渡属性,而当transition开始运行时visibility的hidden由0走向0.01,那么这个时候dom元素就会立刻显示,因为visibility同样也将0.01看做成了1。

这个时候我们就需要去搭配opacity去使用了因为我们需要隐藏时不能触发dom事件,也同样需要隐藏是实现过渡效果。

3.2 如何不让其占据页面位置?

此时我们同样要思考一个问题,就是如何将已经隐藏好的dom元素,不让其占据页面上的位置呢?

    // 点击按钮方法
    isNone(e) {
      // 清除冒泡
      e.stopPropagation();
      // 获取ref属性,每次我们点击时我们立刻会将元素进行展示
      this.$refs["box"].style.display = "block";
      // 并且我们清除掉我们的定时器,防止多次点击,多次触发
      clearTimeout(this.time);
      // 设置为取反
      this.none = !this.none;
      // 如果对应的显示效果为false时,我们就将设置一个定时器,0.5秒之后设置display=none,此处对照上方transition所设置的时间s
      if (!this.none) {
        this.time = setTimeout(() => {
          this.$refs["box"].style.display = "none";
        }, 500);
      }
    },

在这里插入图片描述
对照jsx render函数来讲解一下运行的过程

click按钮 → 属性立即设置为block → 运算过程 → data值变更(class属性进行变更) → 对应transition过渡效果 → 0.5s后调用setTimeout函数执行display=none;

手把手教你学Simulink——基于Simulink的前馈解耦SVPWM整流器仿真 本文详细介绍了基于Simulink的前馈解耦SVPWM整流器仿真方法。针对三相PWM整流器存在的dq轴交叉耦合问题,提出前馈解耦控制方案,通过在电流环中引入耦合电压补偿项,显著提升系统性能。文章包含完整的系统架构、核心算法、Simulink建模步骤及参数设置,仿真结果显示:电流跟踪误差<2%、动态响应时间<0.05s、THD<3%、功率因数>0.999。同时提供了可直接复用的MATLAB代码和工程优化建议,为电力电子工程师实现高精度AC/DC转换提供了实用解决方案。 阅读详情

相关推荐

量化实战:如何用Barra多因子模型给你的投资组合做一次‘风险体检’?

本文详细介绍了如何利用Barra多因子模型对投资组合进行全面的风险体检,帮助投资者识别行业和风格因子的风险暴露。通过实战案例和Python代码示例,展示了数据采集、风险归因和组合优化的完整流程,提升投资组合的风险调整收益。

weixin_27215337的博客 323

transition设置display过渡无效

使用display:none(block)对div的隐藏与显示应用于过渡属性上,但是transition完全失效,没有过渡效果。 div元素使用display:none(block)实现隐藏与显示的时候,会与transition属性冲突,导致过渡效果无效。display会破坏transition。 原因 display:none的时候,页面文档流中将不会存在该元素,display:block...

友人C君的博客 9347

使用 R 的长短期记忆 (LSTM)

在 R 中实现 LSTM 网络涉及使用 TensorFlow 和 Keras 软件包,它们为构建和训练深度学习模型提供了一个用户友好的界面。这些步骤包括准备数据、定义 LSTM 架构、编译模型、在数据上训练模型、评估其性能以及进行预测。与传统的 RNN 不同,LSTM 网络由于其独特的架构,可以在长序列上维护信息。与传统的 RNN 不同,LSTM 网络由于其独特的架构,可以在长序列上维护信息。为了在 R 中实现 LSTM 网络,我们将使用 Keras 库,该库为构建和训练神经网络提供了高级接口。

jianqimingtian的博客 1583

css3中transition和display的坑

不知道大家做css3动画的时候遇到过这种情景没? 用opacity实现淡入淡出的效果。一切正常,没什么问题 例: <!DOCTYPE html> <html> <meta charset="uft-8"> <head> <style> .div1{ background: red; } .div2 { width:100px; height:100px; background:blue; tr

muli`慕李 1085

CTFshow-pwn入门-前置基础pwn32-pwn34

CTFshow-pwn入门-前置基础pwn32-pwn34

你们de4月天的博客 1132

Unity FPS射击控制系统:数据驱动的武器行为解耦方案

在Unity第一人称射击(FPS)开发中,射击系统常因输入、状态、行为耦合导致连发异常、换弹冲突与网络同步失准。其本质是缺乏对‘武器行为’(如后坐力曲线、弹药逻辑)与‘射击控制’(如输入合法性校验、冷却调度)的正交分离。本方案基于ScriptableObject实现WeaponData数据资产化,配合ShootingController状态机服务,达成输入解耦、运行时参数可调、协程受控、网络预测友好等工程目标。适用于中大型FPS项目架构升级与数据驱动转型,尤其解决Unity InputSystem与物理反馈

weixin_30536861的博客 611

css中display:none变为block无法触发transition的解决办法

问题 在页面开发过程中使用transition过渡是一个非常方便并能提高用户体验的属性,不会让一些元素的变化显得非常的突兀,但是元素从display:none到display:block是无法触发过渡(transition)属性的,如果说使用js来解决这个问题会添加复杂的鼠标移入移出监听事件 解决办法 最简便的方式还是使用css3解决,这样也使得js的逻辑代码更纯粹 以下代码的逻辑是:鼠标悬浮父元素触发hover之后给子元素div添加一个动画 需要注意的是这个方法只能解决父子关系的元素 <head&g

weixin_43623808的博客 2779

用 Python 和 uiautomation 实现微信批量发送

思路是这样,将要发送的人员名单(包括称呼)以及发送内容都维护到Excel里,程序运行时读取Excel里内容,自动搜索人员姓名(微信昵称或备注名),填入要发送的内容,拼接上称呼(如果需要的话)自动点击发送,这样轮巡直至名单人员全部发送完成。、

jankingdom的专栏 1471

(30条消息) display中的transition实现

display中的transition实现 这里讨论的transition,是针对于display:none/block;下的实现或替代性方案。 因为过渡是基于数值和时间来计算的,比如长度、颜色、角度等属性值,是可以在单位时间内变化一定数值,从而达到过渡的动画效果。 像我们常见的opacity/width/height/margin/padding等属性,都是可以应用过渡效果的,然而display这个属性比较尴尬,两种状态,要么显示,要么隐藏,因此无法应用transition效果。 ..

jiaoqi6132的博客 1312

5、快速入门

点击启动实例按钮,并设计一个business key,每个实例会有一个business key, 业务主键,也相当于一个流程实例唯一key,一般会与一次业务强相关,比如一个订单号 ,此处取为shopping_1;付款程序完成后会流转到物流发货任务,此时java工程的相应订阅会收到任务,并进入断点,且读到到toWhere变量。单击shopping可以进入实时流程图的执行图,此时流程流转到第一个任务,需要业务系统完成此任务,并通知引擎。添加类,分别订阅流程中的加入购物车任务和物流发货任务。

leyoliu的博客 3502

Transformer实战(30)——Transformer注意力机制可视化

在本节中,我们讨论了人工智能面临的最重要问题之一:可解释人工智能 (explainable artificial intelligence, XAI)。随着语言模型的不断发展,可解释性成为一个严峻的问题。本节中,我们从 Transformer 的角度出发,研究了 Transformer 架构中的自注意力机制,尝试通过各种可视化工具理解这些机制的内部过程。

盼小辉丶的博客 2658

关于display,opacity,visibility的区别

一.display,opacity与visibility display属性规定元素应该生成的框的类型。 opacity属性设置一个元素的透明度级别。 visibility 属性规定元素是否可见。 下面看这三行代码: display:none; visibility:hidden; opacity:0; 我们可以知道这三条属性所形成的元素效果是一样的,但是他们本质上有什么区别呢? 二.知识点 (...

qq_44875145的博客 1096

YOLO11训练中的过拟合识别与应对策略:讲解过拟合的表现、原因及应对方法(如数据增强、正则化、DropOut)

摘要 本文深入探讨了YOLO11目标检测模型中的过拟合问题。首先解析了过拟合的本质,即模型在训练数据上表现优异但泛化能力差的现象,并通过误差分解公式解释了其数学原理。文章详细列举了YOLO11中过拟合的具体表现,包括训练与验证指标分化、检测性能不一致性、置信度分布异常和类别检测不均衡等问题,并提供了对应的可视化诊断方法。 在原因分析部分,重点阐述了模型复杂度与数据规模不匹配、训练数据质量与分布问题以及训练策略不当三大根本原因。特别对比了YOLO11不同版本(n/s/m/l/x)的参数量和推荐最小数据量,指出

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 243

display和transition过渡冲突 元素移动显现消失的解决方案

v

Noctis99的博客 1513

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

transition 动画与 display: none 冲突的问题

几种元素消失的属性 display: none; 元素消失,不占位。 visibility: hidden; 元素消失, 占位。 opacity: 0;透明度设为0, 元素看不见,占位。 width: 0;宽度设为0 , 元素看不见,不占位。 问题 transition与display搭配使用时,会导致过渡消失,直接呈现或者消失元素,可能是transition过渡不支持display的...

天空之上有座城 7778

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

transition过渡动画与display等关系

对于display: none——>display:block的动画,transition无效。可能因为display属于不占位元素消失。 对于visibility: hidden——>visibility: visible的动画,transition有效。因为visibility: hidden元素消失, 占位。但由于实际占位,hover放在visibility: hidden的元素上也会触发效果,不建议使用。 对于opacity: 0——>opacity: 1的动画,transit

what to say 686

transition与display:block冲突

问题:使用display:none(block)对div的隐藏与显示应用于过渡属性上,但是transition完全失效,没有过渡效果。 原因:display:none的时候,页面文档流中将不会存在该元素,display:block的时候,文档流中才存在该元素。transition属性无法对一个从无到有的元素进行过渡显示。 解决方法:使用opacity替代display。 ...

weixin_55241955的博客 554

elementplus折叠面板(Collapse)卡顿如何解决

通过减少过渡时间的方法来解决卡顿无效时,该怎么办?我们可以自己写一个样式来进行过渡

swoly2894265391的博客 3900

解决display:none到display:block无法实现过渡效果的问题(转换解决思路)

主要是解决问题的思路要转换一下 一开始我们的解决办法或许是通过transition来实现过渡的,但是对于不存在的元素我们是无法从无到有来过渡的。 所以我们可以通过先让内容显示出来,然后再给他们加入animation的动画来实现。具体办法就是让父容器作为display:none和display:block的显示过程。而里面的内容就相当于一开始就是存在的了,我们再让它从透明度为0到1的显示就可以了。 <div class="hover-on"> <div class=".

weixin_41033048的博客 8427

transition与display冲突的说明及解决办法

transition属性的作用就是用来达到一个过度的效果 transition-property 规定设置过渡效果的 CSS 属性的名称。 transition-duration 规定完成过渡效果需要多少秒或毫秒。 transition-timing-function 规定速度效果的速度曲线。 transition-delay 定义过渡效果何时开始。 display 属性表示用来显...

weixin_43313076的博客 1889

display从none变成block使用动画过渡

transition过渡不生效 animation动画生效 代码示例: 去掉.jf-drawer-container-hide类后,帧动画生效 .jf-drawer-container { display: block; position: fixed; z-index: 2000; width: 100%; height: 100%; box-sizing: border-box; overflow: hidden; background-color: #ccc; } .

weixin_43294560的博客 4685

使用display:none,动画不生效问题

方法一、改用visibility:hidden,虽然不可见了,但是仍然会占据页面上的空间 方法二、利用延时 setTimeout(function(){ document.getElementById("id").style.display="none" }, 1000); //1s是动画时间。

qq_39262418的博客 1784

CSS过渡失效的原因

display: none 和display: block之间的切换也会出现过渡效果失效的情况。 原因:display: none是销毁当前dom节点,再次切换为display: block时会再创建节点,此时css选择器会重新赋予上去。所以不存在渐变动画。 解决方法: 用opacity(透明度)去替代。 用visibility : hidden和visibility: visible进行替换 ...

宝子的博客 1367

动画——隐藏、过渡

动画相关——隐藏、过渡

m0_48462345的博客 361

CSS transition属性不生效,没有效果

CSS transition属性不生效,没有效果1、不生效2、生效3、效果展示 最近在学HTML+CSS,今天开始做第一个项目,其中需要实现图片缓慢平移的效果,老师教我们用transition来实现,但是我自己编写的时候,发现transition并没有效果。研究一番之后发现,需要给属性添加一个初值才能够激发属性transition。 1、不生效 .header .logo a{ position...

Lanhaorena的博客 1万+

jquery css 实现div隐藏显示过渡效果

css的display none和block实现隐藏展示效果比较生硬,自己参考资料实现了过渡一个效果,可通过修改 transitionz中秒来调整过渡强度

bbkkkk的专栏 648

display:none到display:block失效问题及解决办法

项目开发中display:none到display:block失效问题及解决办法

海风依旧 4294
上一篇: Vue中如何正确的使用jsx语法书写代码
下一篇: element必填校验 输入空格问题,修改正则表达式、请求拦截器,实现所有输入框去除首尾空格
归来巨星
归来巨星 新星创作者: 前端开发技术领域 新星创作者: 前端开发技术领域
博客等级 码龄7年 5391粉丝 95原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

归来巨星

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值