【问题标题】:Hover over one div, change color of another but fade out all divs that aren't hovered on将鼠标悬停在一个 div 上,更改另一个 div 的颜色,但淡出所有未悬停的 div
【发布时间】:2013-10-17 17:08:10
【问题描述】:

我已经减少了我想要实现的目标,以便更容易理解。

好的,我有如下三个 div(全部水平对齐)

<div id="MainGrid">
    <div id="Row1">
        <div id="row1floatleft">
        </div>
        <div id="row1floatRight">
        </div>
        <div id="row1floatMiddle">
        </div>
    </div>
</div>

当我将鼠标悬停在 row1floatleft 上时,它会更改 row1floatmiddle 的背景颜色,这工作得很好,我遇到的问题是试图淡出 row1floatright div

这是我的css

#MainGrid
{

 width:900px;
 margin:0 auto;
 border:1px solid black;   
}

#Row1
{
 width:900px;
 margin:0 auto;
 border:1px solid blue;   
}

#row1floatleft
{
width:299px;
float:left;
height:150px;
border:1px solid red;
background-color:Red;
}

#row1floatRight
{
width:299px;
float:right;
height:150px;
border:1px solid yellow;
background-color:Yellow;
}

#row1floatMiddle
{
width:299x;
height:150px;
border:1px solid green;
background-color:Green;
}

#row1floatleft:hover ~ #row1floatMiddle
{
background-color:Blue;
}

我正在尝试复制这个 http://www.virgin-atlantic.com/us/en/the-virgin-experience.html

所以我将鼠标悬停在 row1floatleft 上,它改变了 row1floatMiddle 的背景颜色,但需要淡出所有其他未悬停的 div,我试过没有(:Hover)

#row1:not(:Hover)
{
background-color:Orange;
}

但这不与

交互
  #row1floatleft:hover ~ #row1floatMiddle
{
background-color:Blue;
}

任何帮助将不胜感激。

【问题讨论】:

    标签: css html fadeout


    【解决方案1】:

    我在这里创建了一个小提琴:http://jsfiddle.net/fLJZv/1/

    您的 css 中有错误:

    #row1floatMiddle
     {
       width:299x;
     }
    

    缺少像素的“p”。

    我添加了更多 CSS:

    #row1floatMiddle
      {
         margin: 0 0 0 299px;
      }
    

    #row1floatleft:hover ~ #row1floatMiddle
    {
    opacity: 0.5;
    }
    #row1floatleft:hover ~ #row1floatRight
    {
    opacity: 0.5;
    }
    

    小提琴(至少)现在可以工作了。 . .

    【讨论】:

    • 感谢您的提琴,我看到您正在淡出其他两个未悬停的 div,我只需要淡出一个,所以我将鼠标悬停在 div 1 上它会改变 div 2 的颜色但是淡出 div 3
    • 简单,将 div 2 的悬停事件改回之前的颜色变化(目前是不透明度) - #row1floatleft:hover ~ #row1floatMiddle{ background-color: blue; } - 没有正确阅读简介是我的错!
    • 感谢 Pat Dobson 看起来非常好,当我添加更多行时,我会按照你所做的相同方式进行操作:) 总共有 12 个 div,所以我将悬停 div 1 显示 div 2 并淡出出其他十个!再次感谢
    • 刚刚想到这样 CSS 会不会看起来一团糟?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-01
    • 2012-04-12
    • 1970-01-01
    • 2019-07-30
    • 2020-08-12
    相关资源
    最近更新 更多