第一个stackoverflow帖子,所以如果我遗漏了一些明显的东西,请原谅。我确实首先搜索了答案,但没有找到我认为相关的答案。
在这个 jsfiddle 中,我有一个 div 用作悬停目标,以使<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
进行测试,它提供了一个有趣的线索:将鼠标悬停在div<a>
的上游过渡触发器上。.target
那是关于我的大脑坏掉的地方,我决定我最好寻求帮助。
我正在处理一些超出我想象的事情,我只是从我能找到的最接近的事情开始,并朝着我需要的方向努力。这是 jsfiddle 的起点(感谢作者):