这是我的第一个stackoverflow帖子,如果我漏掉了一些显而易见的东西,请谅解。我先搜索了答案,但没有找到我认为相关的答案。
在这个jsfiddle中,我有一个
元素,我将其用作悬停目标,以使一些转换发生在
<a>
元素上。
http://jsfiddle.net/ramatsu/Q9rfg/
这是标记:
<div class="target">Target
<a href="#" class="LightMe"><p>.LightMe</p></a>
</div>
以下是CSS代码:
body {
background-color: #099;
height: 100%;
width: 100%;
margin-top:200px;
}
.target{
position: absolute;
left: 40%;
height: 100px;
width: 200px;
padding: 20px;
background-color: #ccc;
cursor: pointer;
}
a {
display: block;
position: relative;
padding: 1px;
border-radius: 15%;
}
a.LightMe {
/*Starting state */
background-color: white;
border-style:solid;
border-color:#fff;
top: -120px;
left: -200px;
height: 80px;
width: 80px;
z-index: 10;
opacity: 0;
transition:left 0.55s ease, opacity .5s .7s ease;
-webkit-transition:left 0.55s ease, opacity .5s .7s ease;
-o-transition:left 0.55s ease, opacity .5s .7s ease;
}
.target:hover a.LightMe {
/*Ending state*/
left: 80px;
opacity: 1;
transition:left 0.55s .7s ease, opacity .5s ease;
-webkit-transition:left 0.55s .7s ease, opacity .5s ease;
-o-transition:left 0.55s .7s ease, opacity .5s ease;
}
.target:hover {
transition: background-color 500ms ease;
-webkit-background-color 500ms ease;
-o-background-color 500ms ease;
background-color:#999;
}
- 将鼠标悬停在标记为“Target”的灰色框上,然后再移开,以查看
<a>
元素上的过渡效果。它正在做我想要的事情:不透明度在位置延迟期间淡入,然后滑动到所需位置。当移出悬停目标时,<a>
滑动到原始位置,然后不透明度恢复淡出。到目前为止一切都好。 - 问题是,如果用户将鼠标悬停在隐藏的
<a>
元素上,它会触发相同的一组过渡效果,这会导致各种意外的麻烦。
我希望能够防止直接悬停在<a>
元素上产生任何响应,并且如果可能的话,我真的希望继续在css中保留它。
我尝试添加一个显式的悬停到<a>
和.LightMe
来覆盖此操作,但没有成功。(虽然这可能是因为我只是没有正确选择语法。)
我故意将背景颜色过渡添加到.target
进行测试,并提供了一个有趣的线索:悬停在<a>
上触发了.target
div的上游过渡效果。这就是我的大脑崩溃的地方,我决定最好寻求帮助。
我正在处理一些超出我的能力范围的东西,我只是从我能找到的最接近的东西开始,并朝着我需要的方向努力。这是起点 jsfiddle(感谢作者):