2013-07-10 235 views
1

我想在半透明div元素上使用背景图像,其中悬停在任何一个更改背景颜色。但是,将鼠标移至任一元素上时,我遇到了闪烁效果。悬停css时闪烁的颜色

<div class="container"> 
    <div class="test"></div> 
    <div class="first box"></div> 
    <div class="third box">third</div> 
    <div class="second box">second</div> 
    <div class="fourth box">fourth</div> 
    <div class="last box">last</div> 
</div> 

CSS:

html, body, 
.container { 
    height: 100%; 
    min-height: 100%; 
} 

.box { 
    width: 191px; 
    height: 145px; 
    margin: 4px; 
    float: left; 
    background-color: black; 
} 

.box:hover{ 
    background-color:#EF6939; 
    opacity: 1; 
    overflow: hidden; 
} 

.test:hover{ 
    background-color:#EF6939; 
    overflow: hidden; 
} 

.test { 
    width: 191px; 
    height: 145px; 
    margin: 4px; 
    float: left; 
    position: absolute; 
    /* background-image: url(test.png);*/ 
} 

.first { 
    /* float: left; */ 
    /* background-color: red; */ 
    opacity: 0.1; 
} 

.second{ 
    /*  float: left;*/  
    /* background-color: green; */ 
} 

.third{ 
    /* float: right; */ 
    /* background-color: blue; */ 
} 

.fourth { 
    /* float: right; */ 
    /* background-color: #DDDDDD; */ 
} 

.last{ 
    /* float: right; */ 
    /* background-color: yellow; */ 
} 

这里是我的代码的链接: http://jsfiddle.net/YTDyL/

+3

什么用途div.test服务?问题是它的重叠div.first,因为它的位置绝对。可能需要在div.first中移动div.test(反之亦然)。两个元素都在竞争:悬停,因为它们重叠。 http://jsfiddle.net/YTDyL/1/ –

+2

你应该把它作为答案 – user2067005

+0

你应该把它作为答案 –

回答

4

什么用途div.test服务?

问题是它重叠div.first,因为它的位置绝对。根据您的预期效果,您可能需要将div.test移至div.first(反之亦然)。无论哪个容器需要定位(相对或绝对或其他方式),如果它将容纳一个position: absolute;元素。

这两个元素都竞争:hover,因为它们重叠。因此,闪烁(随着鼠标移动而增加,另一个丢失,并且再次返回)。

jsfiddle.net/YTDyL/1

+0

为什么不把你的jsFiddle放在答案中? – Sparky

+0

它不会让我链接到没有嵌入代码的小提琴......从来没有见过这样的SO。新功能? –

+0

哦,是的......这是为了遏制过度使用jsFiddle链接来取代完全“自包含”的答案。你仍然应该发布你的解决方案的代码......然后它将允许你的jsFiddle演示链接。 – Sparky

3

时超过,因为它们具有相同的z-index等既悬停效果被触发元件移动指针它闪烁。如果将z-index属性添加到这两个元素,那么其中一个具有较高的索引,那么另一个则不会发生闪烁。

这里是一个小提琴给你看:

http://jsfiddle.net/YTDyL/3/

+0

+1,另一个很好的解决方案 –

+0

同意,这是另一个很好的解决方案 – user2067005

1

添加的z-index到.test

.test{z-index:99;} 

Demo