代码之家  ›  专栏  ›  技术社区  ›  StudioTime

高亮显示DIV并将鼠标悬停时的其余部分调暗

  •  2
  • StudioTime  · 技术社区  · 13 年前

    我有一个充满DIV的页面,其中包含图像。

    当我把鼠标放在一个图像上时,我可以通过添加类等来突出显示它或添加阴影来强调它,但有没有办法调暗其他图像。

    DIV被加载到DOM中,我希望当前悬停在上面的DIV保持100%或1的不透明度,并且当一个DIV被高亮显示时,页面上的其余DIV淡化到70%或0.7。

    这可能吗?

    4 回复  |  直到 13 年前
        1
  •  8
  •   Roko C. Buljan    12 年前

    仅限CSS:

    jsBin demo

    #parent:hover > div{ opacity:0.6; }    /* Fade ALL OUT on parent hover */   
    #parent > div:hover{ opacity:1; }      /* Fade in hovered one */
    
        2
  •  5
  •   ShaShads    13 年前
    $('div').hover(function() {
        $('div').css({opacity: '0.7'});
        $(this).css({opacity: '1'});
    }, function() {
        $('div').css({opacity: '1'})}
    );
    

    我认为这应该奏效。

        3
  •  3
  •   Yisela    13 年前

    您可以使用一个新的div作为“掩码”。

    你会有你的 图像div 具有 z-index:1; 例如

    你也有 另一个div 具有 opacity:50%; position:fixed; top:0; left:0; width:100%; height:100%; z-index:2; 。当页面加载时,必须隐藏此黑色div( display:none; ).

    使用javascript,当您将鼠标悬停在图像div上时,白色div应该更改为 z-index:3; ,黑色div应更改为 display:block; 或类似的。

    附录:

    如果您不想要覆盖div,而只想使其他图像不透明,那么javascript只需要更改不透明度(您可以在类中管理这些不透明度,然后只需使用JS在它们之间切换)。

        4
  •  2
  •   Diodeus - James MacFarlane    13 年前

    最简单的方法可能是:

    1) 制作一个覆盖整个页面的半透明覆盖层。

    2) 克隆您的DIV并将其放置在覆盖的顶部。