CSS3 过渡 + 不显示 + 防止过度滚动

2023-12-11

因此,如果您还不熟悉,CSS3 过渡不会产生动画display: none因为它从 DOM 中完全删除了目标元素。这是我的问题。我有一个侧边栏,其中悬停时会出现更大的弹出 div。不幸的是,因为我只能过渡visibility: hidden and opacity: 0由于布局中包含明显隐藏的 div,因此导致页面滚动条中出现一个非常长的弹出窗口,因此我出现了过度滚动。

寻找一些创造性的解决方案,以了解如何在不将滚动条搞砸的情况下仍然可以制作动画。

我正在本地开发,所以我没有可以展示的实时示例,但您可以在此截屏视频中看到问题:http://dreamstarstudios.com/screencasts/2011-09-27_2111.swf

提前致谢!


我假设您的弹出窗口已绝对定位,因此您可以执行以下操作:

  1. 隐藏时,设置弹出窗口top到一个巨大的负值。这会将其移出屏幕并摆脱滚动条。
  2. 悬停时,设置top到正确的值并转换opacity value.
  3. 确保你的 CSStransition规则仅适用于opacity财产。

HTML

<a href="">Popup go now</a>
<div class="popup">
    My cat's breath smells like cat food...
</div>

CSS

.popup {
   position: absolute;
   top: -2000px;
   opacity: 0;

   transition: opacity 1s ease-in-out;
}

a:hover + .popup,
.popup:hover {
   top: 30px;
   opacity: 1;   
}

这是上面的内容在行动.

Update:要添加左摆动,并清理mouseout动画,可以使用以下代码:

.popup {
   position: absolute;
   top: -2000px;
   width: 300px;
   left: 0;
   opacity: 0;

   /* Animate opacity, left and top  
      opacity and left should animate over 1s, top should animate over 0s
      opacity and left should begin immediately.  Top should start after 1s. */
   transition-property: opacity, left, top;
   transition-duration: 1s, 1s, 0s;
   transition-delay: 0s, 0s, 1s;
}

a:hover + .popup,
.popup:hover {
   top: 30px;
   left: 30px;
   opacity: 1;  

   /* All animations should start immediately */
   transition-delay: 0s;
}

它按如下方式执行此操作:

  1. 指定了多个属性的动画(不透明度、左侧、顶部)。
  2. transition-delay防止顶部值发生更改,直到不透明度和左侧动画完成。这里的技巧是当元素是:hover,没有延迟(不透明度、左侧和顶部动画全部立即开始)。然而有一次:hover不再处于活动状态,顶部动画在开始前等待 1 秒。这会产生不透明度并留出足够的时间来完成。

这是更新的例子.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CSS3 过渡 + 不显示 + 防止过度滚动 的相关文章

  • 每 2 行后使 html 表格的边框变厚

    我创建了一个包含一些内容的表 其中有 12 行和 2 列 我想显示边框 但每 4 行之后 我想将水平边框设置为比正常情况更粗 怎么做 请在这里帮忙 试试这个选择器 table tr nth of type 4n td border bott
  • 使用其innerHTML查找元素

    请看一下这个 DOM 树 div div span Home1 span div span Home2 span span Home3 span div 现在假设我有一个场景 我以某种方式获得了第一个跨度的innerHTMLHome1 是否
  • 理解 z-index:该元素如何出现在其父级同级元素的前面?

    为什么当我删除时红色 div 位于绿色 div 前面z index from wrapperRed 感觉像z index是沿着链条向上继承的 如果我改变z index将绿色 div 更改为 6 即使删除第一句中描述的行后 它仍保留在红色 d
  • 古老的“字幕”标签的替代品?

    marquee 标签的标准等效项是什么 我正在寻找 HTML C asp NET 或 ASPX jquery java 脚本的解决方案 marquee 标签未包含在标准中 因为它是 视觉 标签 而不是 语义 标签 因此 您想要的任何语言都没
  • save_and_open_page 已停止提供我的 CSS

    我的测试设置工作得很好 每当我打电话时 都能提供正确格式的 css 页面save and open page从测试中 然后 我设置了一些 javascript 测试 并对我的设置进行了一些更改 抱歉 我无法详细说明所有内容 我没有足够详细地
  • 使用本地存储在从另一个表保存的 HTML TABLE 中打印 JSON,以便我在另一个页面上打印我的表

    在我的作业中 我必须使用用户输入中的数据并将数据保存在本地存储中 我必须以水平表格式将这些数据从本地存储打印到其他页面 为此 我编写了用于用户输入并将数据保存在本地存储中的代码 div p p div
  • div 中的中心文本?

    我有一个div 30px高和500px宽的 这div可以包含两行文本 一行在一行 并相应地设置样式 填充 但有时它只包含一行 我希望它居中 这可能吗 要水平居中 请使用text align center 要垂直居中 只能使用vertical
  • Bootstrap:如何将按钮组对齐在中心(垂直)

    在下面的代码中
  • 防止垃圾邮件按钮呼叫功能

    如何防止调用函数时出现垃圾邮件按钮 就像用户只能在按钮上每 1 秒调用一次该函数 有办法做到吗 因为我尝试了 setTimeout 但没有成功 它仍然在发送垃圾邮件 顺便说一句 我使用 Jquery 这是我的代码
  • 如何使用固定的 pandas 数据框进行动态 matplotlib 绘图?

    我有一个名为的数据框benchmark returns and strategy returns 两者具有相同的时间跨度 我想找到一种方法以漂亮的动画风格绘制数据点 以便它显示逐渐加载的所有点 我知道有一个matplotlib animat
  • 使用完成处理程序在 Swift 中调用连续动画

    我正在制作一个可以显示化学反应动画的应用程序 每个原子都是一个 SCNSphere 并通过 SCNActions 进行动画处理 我尝试使用 runAction 中的完成处理程序在当前操作完成后调用下一个动画 因为每个原子必须做出很多不同的运
  • 固定 div 位于居中 div 旁边

    我有一个网页 其中有可滚动的内容 此内容包含在 content 内 位于页面的中心 现在我希望导航栏出现在内容左侧 50 像素处 该栏应具有固定位置 不应滚动 这是我到目前为止所尝试过的 nav position fixed top 50
  • HTML W3C 有效元素 - DIV 在 TD 内有效吗?

    我正在和一位同事争论 但找不到证据证明我们俩都是对的 我之前已经看过给定标签的有效元素列表 但只是无法再次找到它 有人能指出我正确的方向吗 我对 XHTML 很好奇 但分歧具体在于 DIV 标签在 HTML 4 01 中的 TD 标签内是否
  • 导航栏下拉菜单(折叠)在 Bootstrap 5 中不起作用

    我在尝试使用以下命令创建响应式菜单或下拉按钮时遇到问题Bootstrap 5一切似乎都正常 导航图标和下拉图标出现 但它不起作用 当我单击nav图标或dropdown按钮 无dropdown menu apears 我想特别提到的是 我还包
  • javascript 选择自定义光标 (svg)

    我正在动态地将光标更改为悬停时的本地 svg element on mouseover function this css cursor url svgs pointer svg 9 30 auto 工作正常 但我想选择该 svg 来操纵其
  • 如何使用角度材料在具有可扩展行的表格中创建嵌套垫表

    我有以下数据 id c9d5ab1a subdomain wing domain aircraft part id c9d5ab1a info mimetype application json info dependent parent
  • VisualStateManager 和生成的转换

    正当我以为我明白的时候VisualStateManager 有些事情证明我错了 我正在使用 WPF 4 并且尝试简单地在鼠标悬停时放大某个项目 并在鼠标离开时将其缩小 我想我只需定义每个状态VisualStateGroup然后指定一个Vis
  • 如何使用 JavaScript 或 jQuery 克隆 HTML 元素的样式对象?

    我正在尝试克隆元素的样式对象 这应该允许我在更改后重置所述元素的样式 例如 el style left 50px curr style left 50px Modify the elements style The cloned style
  • 如何从浏览器向服务器发送“页面将关闭”消息?

    我想向每个 html 文档添加一个脚本 JavaScript 该脚本向服务器发送两条消息 页面确实打开了 页面将关闭 此消息包含页面打开的时间 打开消息应在文档加载时 或加载完成时 发送 这是简单的部分 The close message
  • 使用javascript动态更新css内容

    需要将 css 更新为动态值 我不确定最好的方法是什么 div style zoom 1 div 缩放级别将根据窗口大小调整触发 应用程序将相应缩放 我将此应用程序加载到 cordova 中并让它在 iPAD 中运行 然后我意识到需要使用

随机推荐

  • 实时模板中的当前文件路径

    是否可以在 IntelliJ 的实时模板中获取当前文件的完整路径 我尝试过使用groovyScript new File absolutePath 函数 但返回 Applications IntelliJ IDEA app Contents
  • jQuery - 如何向图像添加标记

    我正在考虑如何向图像添加一些标记 我的意思是像谷歌地图中的东西 地点标记 我有一个图像 如果用户单击该图像 我想在用户单击的那个地方添加一些其他图像 例如 如果用户单击图像中的 3 个位置 我想在这 3 个位置上添加我的图像 我知道 如何获
  • 无法创建 SqlDataSourceEnumerator

    using System using System Data using System Data Sql using System Collections namespace Tinkering with SqlDataSourceEnum
  • 我可以动态更改 asp.net 中的 FormsAuthentication cookie 名称吗?

    我想动态设置 FormsAuthentication cookie 名称 例如 guid 我怎样才能做到这一点 我已经可以在 web config 中将其更改为我想要的任何内容 我只是无法用代码和动态方式做到这一点 请帮忙
  • 生成不带公共文件系统的远程进程

    email protected 8 gt spawn email protected tut test hello 5 我想在 bar del com 上生成一个进程 它没有文件系统访问 foo hyd com 从我生成该进程的地方 运行模
  • OpenMP 并行线程

    我需要并行化这个循环 我认为使用这是一个好主意 但我以前从未研究过它们 pragma omp parallel for for std set
  • jQuery.Lazy():插件未加载我的“li”内容

    The Lazy插件对我来说不太好用 我什至添加了alerts找出问题所在 但对我来说一切都很好 我尝试使用this我的画廊插件的效果 Here是我使用 jQuery Lazy 的网站页面 HTML div class gallery bo
  • 从事件处理程序返回值到 JavaScript 的父函数

    我需要将事件处理程序返回的值放入首先启动事件的函数中 只是为了返回仅在事件处理程序中接收的值 我相信应该有一种简单的方法来实现这一点或从不同的角度解决问题 我实际上需要做的是 创建一个新的 img DOM 对象以将 dataURL 提供给其
  • 内容传输编码 7 位或 8 位

    发送电子邮件内容时 需要设置 内容传输编码 标头 我观察到收到的许多电子邮件的标题 有些电子邮件使用 7bit 有些则使用 8bit 这两者有什么区别 推荐哪个 电子邮件正文是否需要任何特殊编码才能设置这些标头 阅读起来可能有点密集 但 R
  • 是否可以发送 WM_COPY 消息来将文本复制到剪贴板以外的其他位置?

    这是方法定义 DllImport user32 dll public static extern int SendMessage IntPtr hWnd int msg IntPtr lparam IntPtr wparam 这是对 Sen
  • 如何将数组(Google 应用脚本)返回到 HTML 侧边栏?

    我想将我在 code gs 中创建的一些数组返回到 HTML 侧边栏并使用它来填充选择 到目前为止我有这个 假设我想使用 this part of the array for the select 作为 html 选择 code gs fu
  • 在 SwiftUI 列表中呈现 Realm 数据的正确方法是什么

    我正在尝试从中获取所有项目Realm并将它们显示在SwiftUI List但我不断收到错误 In a UIKit Realm应用程序 我只想创建一个Results变量来存储所有项目Realm然后 我会获取中的项目viewDidLoad方法并
  • 类型错误:不可排序的类型:str() < int()

    我使用的是 python 3 5 所有包都是以下版本 numpy 1 12 0b1 mkl cp35 cp35m win amd64 scikit learn 0 18 1 cp35 cp35m win amd64 scipy 0 18 1
  • 在div之上创建一个浮动div

    我正在尝试创建类似以下的内容 div 1 div2 on top of div1 div3 div2 div3 我想创建一个div2在两者之上div1 and div3 我真的不知道如何做到这一点 有人可以帮我吗 谢谢 您
  • SwiftUI @Binding 初始化

    一直在玩 SwiftUI 并理解了这个概念BindableObjects到目前为止等等 至少我希望如此 我遇到了一个愚蠢的问题 我似乎找不到答案 你如何初始化一个 Binding多变的 我有以下代码 struct LoggedInView
  • 将不同的格式应用于不同的列数据框

    我有以下 df table A B C D 0 0 000000 0 000000 0 002520 0 002520 1 0 209772 0 016262 0 003411 0 024343 2 0 006474 0 000152 0
  • c++ OpenCV 将 Mat 转换为一维数组

    我有这个Mat Mat testDataMat 386 2 CV 32FC1 testDataFloat 其中取自 float testDataFloat 386 2 但我不知道如何将它变成一维数组 有什么帮助吗 样本包括 从浮点二维数组转
  • android viewPager 实现 [关闭]

    很难说出这里问的是什么 这个问题模棱两可 含糊不清 不完整 过于宽泛或言辞激烈 无法以目前的形式合理回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我的任务是向右滚动到另一个屏幕 然后按图标并显示弹出窗口 我想用ViewPager在两个
  • 在gui线程中触发异步事件

    TL DR 我正在寻找一种方法让一个线程在另一个线程中引发事件 EDIT 我说的是 立即 这个词 正如一些评论者指出的那样 这是不可能的 我的意思是 如果 gui 线程空闲的话 它应该相当快地发生 在低毫秒到纳秒的范围内 如果我做得正确 它
  • CSS3 过渡 + 不显示 + 防止过度滚动

    因此 如果您还不熟悉 CSS3 过渡不会产生动画display none因为它从 DOM 中完全删除了目标元素 这是我的问题 我有一个侧边栏 其中悬停时会出现更大的弹出 div 不幸的是 因为我只能过渡visibility hidden a