css - 想给多个 span 添加 hover 效果

标签 css menu hover hamburger-menu

嘿嘿,

我制作了一个汉堡菜单图标,我希望当您将鼠标悬停在它上面时它会改变颜色,但不知何故它不起作用,我不明白为什么。 我有这 3 个跨度,当单击菜单时,它们变成两个,我让悬停效果分别适用于每个跨度,但我希望所有跨度一次改变颜色。

$(document).ready(function(){
    $("#burger-container").on('click', function(){
        $(this).toggleClass("open");
    });
});
#burger-container{
    margin: 25px 0 0 0;
    width: 50px;
    float: right;
    padding-right: 70px;
}

#burger{
    cursor: pointer;
    display: block;
    width: 50px;
    height: 50px;
}

#burger span{
    background: black;
    display: block;
    width: 50px;
    height: 3px;
    margin-bottom: 10px;
    position: relative;
    top: 0;
    transition: all ease-in-out 0.4s;
}

#burger-container.open span:nth-child(2){
    width: 0;
    opacity: 0;
}

#burger-container.open span:nth-child(3){
    transform: rotate(45deg);
    top: -13px;
}

#burger-container.open span:nth-child(1){
    transform: rotate(-45deg);
    top: 13px;
}

span.hover:hover{
   background: #666666;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="burger-container">
            <div id="burger">
              <span class="hover">&nbsp;</span>
              <span class="hover">&nbsp;</span>
              <span class="hover">&nbsp;</span>
            </div>
        </div>

最佳答案

您应该更改 .hover 跨度的颜色,当它们的父级 #burger:hover 悬停时:

#burger:hover .hover{
   background: #666666;
}

$(document).ready(function(){
    $("#burger-container").on('click', function(){
        $(this).toggleClass("open");
    });
});
#burger-container{
    margin: 25px 0 0 0;
    width: 50px;
    float: right;
    padding-right: 70px;
}

#burger{
    cursor: pointer;
    display: block;
    width: 50px;
    height: 50px;
}

#burger span{
    background: black;
    display: block;
    width: 50px;
    height: 3px;
    margin-bottom: 10px;
    position: relative;
    top: 0;
    transition: all ease-in-out 0.4s;
}

#burger-container.open span:nth-child(2){
    width: 0;
    opacity: 0;
}

#burger-container.open span:nth-child(3){
    transform: rotate(45deg);
    top: -13px;
}

#burger-container.open span:nth-child(1){
    transform: rotate(-45deg);
    top: 13px;
}

#burger:hover .hover{
   background: #666666;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="burger-container">
            <div id="burger">
              <span class="hover">&nbsp;</span>
              <span class="hover">&nbsp;</span>
              <span class="hover">&nbsp;</span>
            </div>
        </div>

关于css - 想给多个 span 添加 hover 效果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45393612/

相关文章:

javascript - "touch and feel"在自定义 HTML 下拉菜单

css - 菜单项 CSS 下方的三 Angular 形

javascript - 为什么 Chrome 中的悬停菜单是 'ghosting'?

html - 如何对动态页码使用 CSS 计数器增量

html - CSS 居中 DIV 包含其他 DIV

Jquery Set Toggle 每个类的可见性

css - 需要更改下拉 css 菜单以下拉

尝试添加文本时 CSS 函数 "content"不起作用

JQuery 悬停菜单只显示部分信息,但不是全部?

html - 悬停时的过渡效果