附加元素后 CSS 过渡不起作用

2024-03-26

我遇到了 CSS 转换问题,在尝试其他操作之前,我想了解问题所在。

一个容器中有 3 个盒子和一个“下一步”按钮。目标是让下一个框顶部出现在顶部,并在按下“下一个”按钮时淡入。通过将框附加到容器来将其定位在顶部,以便将其添加为最后一个元素,从而在顶部可见,并且应该通过 css 过渡淡入。

问题是附加框后 css 过渡似乎不起作用。 如果在未附加的框元素上进行测试,CSS 过渡效果很好。

在这里摆弄 http://jsfiddle.net/z435s/13/,代码如下:

HTML:

<div class="container">
    <div class="box red"></div>
    <div class="box blue"></div>
    <div class="box green"></div>
</div>

<div id="next">Next</div>

JS:

var container = $(".container");

// Save the current list order
var list = container.children(".box");
// The current index
var current = 0;

// Put the first on top
container.append(list[0]);

function next() {
    // Figure out what is the index of the next box
    if (current + 1 < list.length) current++;
    else current = 0;

    // Save it in a variable
    var target = $(list[current]);

    // Put it on top
    container.append(target);

    // Hide it and then fade it in
    target.css("opacity", 0).css("transition", "opacity 1000ms ease-out").css("opacity", 1);

    // The fading in is not working
}

$("#next").click(next);

Update:

这个问题的基本解决方案是在将不透明度设置为 0 之后、设置过渡 css 之前在目标上调用 offset() :

target.css("opacity", 0);
target.offset();
target.css("transition", "opacity 1000ms ease-out").css("opacity", 1);

Updated上面的小提琴版本在这里 http://jsfiddle.net/z435s/14/


“list”变量是一个 jQuery 对象,但作为“目标”从中提取的元素是notjQuery 对象 - 它们是 DOM 节点。因此,您对“.css()”的调用失败(在错误控制台中为我报告)。

一旦解决了这个问题,接下来的问题就是浏览器如何处理一系列 CSS 更新的问题。我不清楚我到底看到了什么(来自 Linux 上的 Firefox 18),但我think基本问题是,由于更改之间没有进行布局重排,因此最终效果是样式“折叠”,因此没有净更改。

In 小提琴的这次更新 http://jsfiddle.net/fUNw2/1/我采取了不同的方法。我将转换规则放在“box”类中,然后添加了一个“prefade”类:

.prefade {
  transition-duration: 0;
  opacity: 0;
}

然后,我不会弄乱元素样式,而是在附加之前添加“prefade”,然后通过询问元素的偏移量来触发布局更新。然后我可以删除“prefade”类,并且该框会淡入。

target.addClass('prefade');
// Put it on top
container.append(target);

var p = target.offset();

target.removeClass('prefade'); 

我不知道这是否是“正确”的做事方式。edit— 要使其在 Chrome 中工作,需要使用以下命令重复“transition”属性-webkit- prefix.

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

附加元素后 CSS 过渡不起作用 的相关文章

  • 修剪日期格式 PrimeNG 日历 - 删除时间戳、角度反应形式

    我将以下内容推入我的反应形式 obj 中2016 01 01T00 00 00 000Z但我想要以下2016 01 01 有谁知道有一个内置函数可以实现上述目的 我已经搜索过文档here https www primefaces org p
  • jQuery UI 可排序和对话

    是否可以在两个列表之间拖动 jQuery UI 可排序列表项 其中一个在 jQuery UI 对话框中 另一个不在 jQuery UI 对话框中 我正在尝试创建一个对话框 用户可以将表单字段从对话框中拖到页面上的表单中 但我无法将项目拖出对
  • Intro.js 2页然后返回首页

    我在用intro js http introjs com 为我的网站创建一个小介绍 我希望游览从第 1 页 主页 2 另一页 然后回到第 1 页 主页 我已经成功地从第 1 2 页开始 但不确定如何让它返回到第 1 页 我对 javascr
  • 在电子生成器反应电子应用程序后,在 Windows 中出现空白屏幕

    在电子生成器反应电子应用程序后 Windows 中出现空白屏幕 这是package json 在电子生成器反应电子应用程序后 Windows 中出现空白屏幕 name SmallBusinessManagement version 0 1
  • 在 R Shiny 中,如何使用可排序 js 将其在列表中出现的顺序次数附加到每个列表元素?

    下面的可重现代码适用于将元素从一个面板拖动到另一个面板 并在 拖动到 面板中自动使用 HTML CSS 对拖入的每个元素进行排名顺序编号 但是 我现在尝试附加到每个 拖动到 列表元素的末尾 使用某种形式的paste0 我假设 该元素在 拖至
  • Gmail 和 Google Chrome 12+ 中的“从剪贴板粘贴图像”功能如何工作?

    我注意到一个来自 Google 的博文 http gmailblog blogspot com 2011 06 pasting images into messages just got html其中提到 如果您使用的是最新版本的 Chro
  • 可选回调的 JavaScript 样式

    我有一些函数偶尔 并非总是 会收到回调并运行它 检查回调是否已定义 函数是一种好的风格还是有更好的方法 Example function save callback do stuff if typeof callback undefined
  • 我们如何使用 thymeleaf 绑定对象列表的列表

    我有一个表单 用户可以在其中添加任意数量的内容表对象这也可以包含他想要的列对象 就像在 SQL 中构建表一样 我尝试了下面的代码 但没有任何效果 并且当我尝试绑定两个列表时 表单不再出现 控制器 ModelAttribute page pu
  • 元素不适应 Firefox 上的

    使用 ES6 ish D3js 模块运行 Angular 6 应用程序会导致 Firefox 出现问题 Chromium Chrome Safari 和 IE Edge 工作正常 伪代码看起来类似于 生产代码可以在下面找到
  • jquery ajax加载后丢失CSS

    大家知道如何解决 load Ajax 请求后的 css 问题吗 例如 如果我想从网页加载 DIV 在我的 Ajax 请求之后 container load path to div div id 我丢失了与该 div 关联的所有 css 和脚
  • CSS:理解和调整字体的行距/行高

    有人问了一个非常相似的问题here https stackoverflow com questions 13701110 css remove line height leading on larger text但确实回答得足够了 CSS
  • CSS 动画自定义属性/变量

    一段时间以来我一直在努力让它发挥作用 关键是内部 div 将具有某种形状 并且可能会不止一个 这就是为什么我使用nth child选择器 这个内部 div 应该显示然后再次隐藏一段时间 问题是 我想在一个动画中为所有 后来的 多个内部 di
  • 媒体查询:如何定位桌面、平板电脑和移动设备?

    我一直在对媒体查询进行一些研究 但我仍然不太明白如何定位特定大小的设备 我希望能够针对台式机 平板电脑和移动设备 我知道会存在一些差异 但如果有一个可用于针对这些设备的通用系统 那就太好了 我发现的一些例子 Mobile only scre
  • Angular 停止 Enter 键提交

    I am trying to stop the Enter from submitting my button and rather make it point to another function I tried trapping th
  • 什么是 TinyMCE jQuery 包?

    我被要求在项目中使用 TinyMCE 编辑器 在下载页面上 有一个主包 然后是一个 jQuery 包 This package contains special jQuery build of TinyMCE and a jQuery in
  • Babel/RequireJS + typeof“RangeError:超出最大调用堆栈大小”

    我有一个非常基本的 JS 错误 我很羞愧无法解决它 我正在使用 ES6 和 Babel 进行开发 并且正在做一些实验 请注意 我在 Babel 中使用了这些参数 presets es2015 plugins transform es2015
  • YouTube iFrame Player API 无法在 DOMWindow 上执行 postMessage

    我正在尝试使用以下命令将 youtube 加载到我的网页中YouTube iFrame Player API 并在加载时出现以下错误 Failed to execute postMessage on DOMWindow The target
  • 如何调试 Node.js 应用程序?

    如何调试 Node js 服务器应用程序 现在我主要使用警报调试打印语句如下 sys puts sys inspect someVariable 一定有更好的调试方法 我知道谷歌浏览器 http en wikipedia org wiki
  • Angular 2:使用正则表达式进行数字验证

    我正在尝试验证 IE 11 中的数字字段
  • JavaScript 中“键”的类型是什么?

    当我失去焦点并开始思考一个愚蠢的问题时 我遇到了这样的时刻 var a b value b 的类型是什么 我的意思不是 值 的类型 而是标记为 b 的实际键 背景 当我必须创建一个字符串键时 我开始想知道这一点 var a b value

随机推荐

  • 从我的 Android 应用程序上传 Vimeo 视频

    如何将视频从 Android 应用上传到 Vimeo 我创建了 Vimeo 应用程序 授予上传权限 生成的访问令牌 检查可用配额 现在我想将视频上传到vimeo 所以请提供示例代码来生成票证并上传 您需要下载vimeo 网络 https g
  • 如何找到 numpy ndarray 中最常见的字符串元素?

    他们有什么方法可以找到 numpy ndarray 中最常见的字符串元素吗 A numpy array a b c d d e result should be d 如果你想要一个 numpy 答案 你可以使用np unique gt gt
  • Newtonsoft.json:根据json路径白名单剪切JSON

    假设我有一些复杂的 JSON path1 path1Inner1 id id1 path1Inner2 id id2 path2 path2Inner1 id id3 path2Inner2 id id4 key key4 还有一些json
  • 使用rest_framework.authtoken.views.obtain._auth_token时发生CSRF错误

    我正在打电话obtain auth token来自如下网址 url r api token rest framework authtoken views obtain auth token 我回来了 detail CSRF Failed C
  • EF Core 如何防止在 OnModelCreating() 中多次调用播种?

    根据文件 通常OnModelCreating 仅在创建派生上下文的第一个实例时调用一次 然后 该上下文的模型将被缓存 并且适用于应用程序域中该上下文的所有其他实例 现在考虑我的代码 protected override void OnMod
  • 如何在react-native中从AsyncStorage中删除项目

    如何从 AsyncStorage 中删除项目 现在我正在尝试这段代码 AsyncStorage removeItem userId 但这对我不起作用 尝试这个 async removeItemValue key try await Asyn
  • 检测window.print是确认还是取消

    你好 我有一个打印代码 我打开一个窗口 这个弹出窗口包含所有打印信息 我使用kiosk printing对于自动打印 但有时会失败 例如 如果chrome与其他实例打开 我会遇到问题 因为我需要确认每个打印 然后我需要知道是否存在一种方法来
  • React 中的 setTimeout 和clearTimeout

    当用户使用 setTimeout 和clearTimeout 在页面上 30 秒内没有进行任何点击事件时 我正在努力创建注销功能 但每次用户点击页面上的任何内容时 剩余时间必须再次重置为 30 秒 或者作为另一个选项 将使用clearTim
  • 如何消除 DirectShow 过滤器链中 1 秒的延迟? (使用Delphi和DSPACK)

    我有一个 Delphi 6 Pro 应用程序 它使用 DSPACK 组件库将音频从系统的首选音频输入设备发送到 Skype 我正在使用 TSampleGrabber 组件进入 Filter Graph 链 然后将音频缓冲区发送到 Skype
  • 当在 erlang 模块上调用“new”时,它会做什么?

    我见过 Erlang 代码中使用了 module name new 但是 module name 模块中没有引用 new 函数 新 有什么作用 它用于 参数化模块 参见here http yarivsblog com articles 20
  • 在 Swing JFrame 上添加 WebView 控件

    我正在开发与 JavaFX 控件混合的 Swing 应用程序 我创建了一个 JavaFX 控件 WebView 浏览 HTML 文件 但我想要 要知道 如何在 Swing 的容器上添加此 Web 视图控件JFrame 鉴于已经存在jFram
  • 使用 std::sort 对二维数组进行排序(基于列)

    我正在运行一个测试 显示按列对二维数组进行排序的好处 方法是将数据提取到单个数组中并对该数组进行排序 然后将其复制回列 我想运行 std sort 作为每次运行的排序算法 我试图弄清楚如何首先在适当的位置运行循环 然后再进行二维数组的复制
  • 保存为 PDF 时,geom_raster 出现“污点”

    当我保存使用的 ggplot 时geom raster 瓷砖 被涂抹 了 如果我使用的话结果是一样的ggsave or pdf 我没有这个问题geom tile or image 我使用 RStudio X11 或 PNG 图形设备时没有出
  • 将变量从 Activity 传递到自定义视图类

    我正在测试使用将音频绘制到画布中canvas drawLine 方法 我能够在画布上进行静态绘制 基本上我有一个测试应用程序 它有两个按钮 开始 和 停止 和一个画布 我试图在其中绘制从 FFT 获得的音频频率 当我按下开始按钮时 它开始使
  • 比较两个通用列表

    你好 我如何比较两个Lists 第一种类型ICollections
  • 从功能区按钮触发报告

    我有几个自定义报告 我希望能够向功能区添加触发它们的按钮 是否可以 如果是这样 任何例子都会很棒 提前致谢 要从功能区按钮运行报告 您需要创建一个 js 文件 其中包含将从按钮调用的函数 你需要 4 样东西 rdlName rdl 文件名
  • OS X 上的 GitHub 客户端提交失败(“无法添加文件...)

    我正在尝试从 Mac OS X Mavericks 计算机上的 GitHub 客户端提交对代码所做的更改 像往常一样 我向我的项目添加了一个新包 这是一个 Laravel 项目 我添加了 Rocketeer 包 我还做了一些配置更改 我收到
  • 如何相对于另一个轴定位图中的轴?

    在 MATLAB 中布置图窗时 输入axis equal确保无论发生什么figure尺寸 即axes永远是正方形 我当前的问题是我想向该图中添加第二个轴 通常 这没有问题 我只想输入axes x1 y1 x2 y2 并且将添加一个新的正方形
  • 在多个 .env 文件之间切换,例如 .env.development 和 node.js

    我想为每种模式 开发 生产等 使用单独的 env 文件 在处理我的 vue js 项目时 我可以使用类似的文件 env development or env production为同一环境键获取不同的值 例如 在 env developme
  • 附加元素后 CSS 过渡不起作用

    我遇到了 CSS 转换问题 在尝试其他操作之前 我想了解问题所在 一个容器中有 3 个盒子和一个 下一步 按钮 目标是让下一个框顶部出现在顶部 并在按下 下一个 按钮时淡入 通过将框附加到容器来将其定位在顶部 以便将其添加为最后一个元素 从