0

当我需要将一个 div 设置为 60% 的不透明度并在悬停时将其动画设置为 90% 的不透明度时,问题就开始了。

唯一的问题是我需要一个全白(非透明)PNG图像在这个盒子的顶部。

所以我尝试了覆盖包含图像的单独 div 并使用边距将其放置到位的技巧;但是当您的鼠标位于图像顶部时,背景 div 动画悬停不起作用。

HTML

<div style="position:relative;top:-1px;left:0">
<div class="ontop"><img src="http://www.designdownloader.com/item/pngs/button01_google/button01_google-20110813210436-00005.png" alt="OneSpring - Play Video" /></div>
                <div id="box-video">


            </div>            
            </div>
</div>

CSS

#box-video {
    position: absolute;
    background-color:rgba(0,57,129,1);
    top: 0;
    left: 0;
    padding: 15px;
    font-family: 'Helvetica Neue Light', Arial, Helvetica, sans-serif;
    width: 210px;
    height: 130px;
    opacity: 0.6;
    filter: alpha(opacity=60);
     -webkit-transition: opacity .25s ease-in-out;
     -moz-transition: opacity .25s ease-in-out;
     -ms-transition: opacity .25s ease-in-out;
     -o-transition: opacity .25s ease-in-out;
     transition: opacity .25s ease-in-out;
}
#box-video:hover, .ontop:hover {
    cursor: pointer;
    /*color: #ffffff;*/
    text-decoration: none;
    opacity: 0.9;
    filter: alpha(opacity=90);
    zoom: 1;
    -webkit-transition: opacity .25s ease-in-out;
    -moz-transition: opacity .25s ease-in-out;
    -ms-transition: opacity .25s ease-in-out;
    -o-transition: opacity .25s ease-in-out;
    transition: opacity .25s ease-in-out;
}

div.ontop {
    position: relative;
    top: 4.7em;
    left:30px;
    z-index:1002;
}

这是一个显示问题的 JSFiddle:

http://jsfiddle.net/xpancom/fZrWA/

即使您在图像顶部,如何使背景悬停工作?

4

3 回答 3

1

您也可以使用 :before 或 :after 伪类。

它会清理你的代码很多。

这就是您的 HTML 的样子:

<div style="position:relative;top:-1px;left:0">
  <div id="box-video"></div>
</div>

这里有更多关于它们的信息,这里是小提琴:http: //jsfiddle.net/jyHMf/

看看那是不是你要找的。

于 2013-01-08T01:12:36.167 回答
1

我认为您在谈论 CSSpointer-events属性。指针事件 | MDN

因此,您的代码可能如下所示:

div.ontop {
  position: relative;
  top: 4.7em;
  left:30px;
  z-index:1002;
  pointer-events: none;
}

http://jsfiddle.net/8CZEY/

于 2013-01-08T01:26:32.107 回答
0

在容器上放一个 id:

<div id="box" style="position:relative;top:-1px;left:0">

现在将hover事件放在容器上,并让它影响子元素:

#box:hover {
  cursor: pointer;
}

#box:hover #box-video {
  opacity: 0.9;
  filter: alpha(opacity=90);
  zoom: 1;
  -webkit-transition: opacity .25s ease-in-out;
  -moz-transition: opacity .25s ease-in-out;
  -ms-transition: opacity .25s ease-in-out;
  -o-transition: opacity .25s ease-in-out;
  transition: opacity .25s ease-in-out;
}

演示:http: //jsfiddle.net/fZrWA/2/

于 2013-01-08T01:01:41.923 回答