- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个元素,我称之为 back
,被另一个元素覆盖,我称之为 front
。
Back
在 CSS 中设置为在悬停时改变颜色。 Front
设置为在悬停时在 1s
延迟后消失,并且鼠标指针位于 Front
元素现在位于 back 元素 上。
Front
通过在 JavaScript 中设置 height: 0
消失。 Front
消失后,鼠标指针悬停在 Back
上,浏览器不会重新呈现悬停效果 < strong>Back
这导致其颜色没有按应有的方式更改。
当我通过从 DOM 中自然删除 Front
来尝试相同的示例时,它工作正常。不过,我的应用要求我通过设置 height: 0
来执行此操作。
您可以在以下示例中自行尝试。您会看到一个红色框和一个蓝色框。红色是Front
,蓝色是Back
。当您将鼠标指针移至红色框时,红色框的颜色会变为绿色
。当您将鼠标移到蓝色框上时,一秒钟后,它会消失。
该示例的要点是表明在蓝色框消失后,鼠标指针现在悬停在红色框上,因此它应该变为绿色
。
在this example ,蓝色框已从 DOM 中完全删除,并且按预期工作。
在this example , 不过,蓝色框将通过设置 height: 0
来移除。消失后,红色元素不会变成绿色
,直到我移动鼠标。
有没有办法强制浏览器重新渲染?
该问题在 Google Chrome 和 Microsoft Edge 中仍然存在。 Firefox 运行良好。
最佳答案
无需强制浏览器重新呈现,您只需向 foo
添加一个类,当 >bar
消失,然后在 mouseleave
上恢复正常。
CSS:
#foo.hover, /* <- I just added this */
#foo:hover {
background-color: green;
}
JavaScript:
var
foo = document.getElementById("foo"),
bar = document.getElementById("bar");
/* Set the 'mouseenter' event for bar to set the height to 0 and & the 'hover' class. */
bar.onmouseenter = function() {
setTimeout(function() {
bar.style.height = 0;
foo.classList.add("hover");
}, 1000);
}
/* Set the 'mouseleave' event for bar to remove the 'hover' class. */
bar.onmouseleave = function() {
foo.classList.remove("hover");
}
查看以下代码段以获得可视化表示。
片段:
/* --- JavaScript --- */
var
foo = document.getElementById("foo"),
bar = document.getElementById("bar");
/* Set the 'mouseenter' event for bar. */
bar.onmouseenter = function() {
setTimeout(function() {
/* Set the height to 0. */
bar.style.height = 0;
/* Add the 'hover' class. */
foo.classList.add("hover");
}, 1000);
}
/* Set the 'mouseleave' event for bar. */
bar.onmouseleave = function() {
/* Remove the 'hover' class. */
foo.classList.remove("hover");
}
/* --- CSS --- */
#foo {
width: 200px;
height: 200px;
background-color: red;
position: absolute;
top: 10px;
left: 15px;
}
#foo.hover,
#foo:hover {
background-color: green;
}
#bar {
width: 200px;
height: 200px;
background-color: blue;
position: absolute;
top: 100px;
left: 100px;
}
<!-- HTML -->
<div id = "foo"></div>
<div id = "bar"></div>
关于javascript - CSS :hover rerender after covering element height 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38290834/
我将视差效果与 background-size: cover; 一起使用。当屏幕分辨率为 +1090px 时没有问题,但如果它更小,背景图像开始隐藏在底部 div 下。 这是我的 bg img 的 c
我想存储来自 Coverity® 的结果到 InfluxDB,我想知道 Coverity 是否有 REST API? 最佳答案 如果您只是想将数据转储到 InfluxDB,您可以从 REST API
这个问题在这里已经有了答案: How to remove the stripes that appears when using linear gradient property [duplica
我已经建立了一个项目来使用 Coverity Scan . 在分析设置→项目组件下我有 Component name Pattern Ignore in analysis
我是使用覆盖的新手,这可能不是一个非常具有挑战性的问题,但如果有人能指导我完成设置 . 我首先运行以下命令: cov-configure --compiler/usr/bin/gcc --compty
我使用封面图像填充侧边栏,但在未填充正文的封面图像和封面正文本身之间出现了一条黑线。您可以在实际中看到它 here .我很确定这不是边界或其他任何东西。 谢谢! HTML CSS .co
我正在尝试构建一个背景图片我希望始终填满整个屏幕的网站。 当浏览器窗口又短又宽时,我希望图像展开,以便它的顶部在纵向填满整个屏幕,而其余部分则不可见。 当浏览器窗口又高又薄时,我希望图像展开,以便它的
我需要在其中一个元素上设置“封面”背景。 使用 CSS background-size: cover 与实际 img 和 object-fit: cover 的优缺点是什么? 最佳答案 除了其他人所说
我正在尝试用图像填充 div,同时保持其纵横比。但是我不想使用带有 background-size: cover 的背景图像,甚至不想使用 object-fit: cover 属性,我想要它们使用 i
这是我非常简单的 C++/CMake .travis.yml env: global: # The next declaration is the encrypted COVERITY_SC
在我通过启动并运行一个 100% 覆盖率的小型 C++ 测试项目来了解更多关于自动化测试的过程中,我遇到了以下问题——尽管我所有的实际代码行和所有执行分支都是被测试覆盖,lcov 仍然报告两行未经测试
我已经用 coverity-scan 注册了一个项目过去。 我现在想从 coverity-scan 中删除该项目(或者至少从我的仪表板中删除;但我更希望完全删除该项目)。 我被卡住了,因为网络界面中似
我通过覆盖工具收到以下错误 - overrun-buffer-arg:通过将 4 字节的结构类型 in_addr 传递给使用参数“8UL”在字节偏移量 7 处访问它的函数来溢出 4 个字节。 示例代码
有一个覆盖警告类型:UNUSED_VALUE。这是由“代码可维护性问题”下的工具定义的 UNUSED_VALUE:当一个变量被分配一个从函数调用返回的指针值并且从未在源代码中的其他任何地方使用时,它不
对 Java 来说相对较新,但任务是检查 Coverity 缺陷。这件事真像我想的那么简单吗? (我无法说服代码所有者。) 50 // this method is used when
我想在本地虚拟机上使用 Coverity。我创建了简单的 HalloWorld 并使用 Coverity Wizard 来设置分析。一切正常。问题是当我想从终端运行 Coverity 时。它没有“找到
给定以下程序: int main(){ float x = non_det_float(); float y = NAN; if (isnan(y) && x == 1.0f){
我想实现如下的封面流程 我试过 Carousel,但它不是一回事。一些谷歌搜索是否无法找到甚至接近给定示例中实现的封面流程的内容。 最佳答案 一定要看看这个,FancyCoverFlow . Play
如果我使用 background-size: cover 并且我想确保我的图像在分辨率为 2880x1880 的视网膜 macbook pro 上看起来不错,我是否只需要使图像达到该分辨率,或者它是否
我有两个 block 元素,第一个 ( ) 是浏览器窗口的大小并呈现动态大小的背景图像(使用 background-size: cover; )。另一个是固定的 高度恒定为 62px 和更大的 z-
我是一名优秀的程序员,十分优秀!