css - 如何在另一个元素悬停时为一个元素设置动画

标签 css animation css-transitions css-animations

我有一个包含两个元素的 div 框。一个在另一个下面。因此,当下方元素悬停时,我会让它动画化并将其滑出顶部元素。

<div id="main">
        <div id="box"></div>
        <div id="item"></div>
</div>

根据我对 CSS3 的了解,我只能为元素进行过渡,使其在悬停时滑出。但我希望它发生在#main 悬停而不是#item 时。 请看看他们。 http://jsfiddle.net/sL3Pw/

最佳答案

你是对的,目前没有办法在纯 CSS 中为子元素的父元素设置样式。您可以使用 JavaScript 作为实现所需效果的一种方式。

(更新)

您可以通过执行以下操作在 JavaScript 中实现此目的(DEMO:Fiddle)

JS

这应该运行 onload 否则它不会工作。

// On Hover
document.getElementById('main').onmouseover = function () {
    document.getElementById('item').classList.add("to-left"); // Add To Left Class
}

// OnMouseOut (Not Hover)
document.getElementById('main').onmouseout = function () {
    document.getElementById('item').classList.remove("to-left"); // Remove To Left Class
}

请记得在需要时更改元素的 ID。

CSS

将此 CSS 类添加到您的 CSS

.to-left {
    margin-left: 60px;
}

并且您的 HTML 保持不变。这应该得到我认为您想要的结果。如果这对你有用,请告诉我。

关于css - 如何在另一个元素悬停时为一个元素设置动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19148198/

相关文章:

html - 使用 CSS 悬停时图像显示在图像上方

javascript - jQuery 检查是否设置了 .css 属性

javascript - Chrome 中的 ReadSpeaker 损坏网页

javascript - 使用 angular 和 animate.css 按顺序设置动画

javascript - 使用 JQuery 转换背景图像时遇到问题

javascript - 基础导航栏过渡链接

javascript - 如何将事件的 css 类添加到 Wordpress 中的链接

html - 过渡一个圆圈以显示

c# - 动画基础数学

css - 同一个目标过渡两次 (CSS3)