jquery - Bootstrap 在导航栏悬停时更改 i 类的颜色?

标签 jquery html css twitter-bootstrap

我在互联网上搜索一些想法,发现了这个: http://iarouse.com/dist-flatify/v1.1/index.html#/dashboard

在这里您可以看到带有导航的侧边栏。如果你将鼠标悬停在它上面。您可以在 上看到指定的颜色。现在我想知道他们是怎么做到的。我试过这个:

li:hover > i {
    background-color: green;
}

但这似乎没有用。

编辑:

HTML 代码(抱歉没有包含):

<ul class="sidebar-menu">
                    <li class="active">
                        <a href="index.html">
                            <i class="fa fa-dashboard"></i> <span>Dashboard</span>
                        </a>
                    </li>
                    <li>
                        <a href="widgets.html">
                            <i class="fa fa-th"></i> <span>Widgets</span> <small class="badge pull-right bg-green">new</small>
                        </a>
                    </li>
                    <li class="treeview">
                        <a href="#">
                            <i class="fa fa-bar-chart-o"></i>
                            <span>Charts</span>
                            <i class="fa fa-angle-left pull-right"></i>
                        </a>
                        <ul class="treeview-menu">
                            <li><a href="charts/morris.html"><i class="fa fa-angle-double-right"></i> Morris</a></li>
                            <li><a href="charts/flot.html"><i class="fa fa-angle-double-right"></i> Flot</a></li>
                            <li><a href="charts/inline.html"><i class="fa fa-angle-double-right"></i> Inline charts</a></li>
                        </ul>
                    </li>
                    <li class="treeview">
                        <a href="#">
                            <i class="fa fa-laptop"></i>
                            <span>UI Elements</span>
                            <i class="fa fa-angle-left pull-right"></i>
                        </a>

                    <li class="treeview">
                        <a href="#">
                            <i class="fa fa-folder"></i>  Multilevel Menu
                            <i class="fa fa-angle-left pull-right"></i>
                        </a>

                        <ul class="treeview-menu">
                            <li class="treeview">
                                <a href="#">
                                    First level
                                    <i class="fa fa-angle-left pull-right"></i>
                                </a>

                                <ul class="treeview-menu">
                                    <li class="treeview">
                                        <a href="#">
                                            Second level
                                            <i class="fa fa-angle-left pull-right"></i>
                                        </a>

                                        <ul class="treeview-menu">
                                            <li>
                                                <a href="#">Third level</a>
                                            </li>
                                        </ul>
                                    </li>
                                </ul>
                            </li>
                        </ul>
                    </li>
                </ul>

编辑2: 大多数人不明白这个问题,所以让我用另一种方式解释。 例如我们在这个页面上使用导航栏: http://almsaeedstudio.com/AdminLTE/

现在我想要的是当我悬停时发生这种情况: http://prntscr.com/5526kp

就像在这个网站上一样:http://iarouse.com/dist-flatify/v1.1/index.html#/dashboard

最佳答案

如果您使用调试器检查侧边栏,您会看到每个列表项元素下方是一个彩色范围,其左侧属性设置为 -47 像素,使其隐藏。该跨度还有一个 CSS 过渡属性,当用户将鼠标悬停在链接上时该属性会被激活。发生这种情况时,跨度的左属性会转换为 0,从而创建您正在寻找的效果。

这是 a fiddle of the general idea那应该让你开始走上正确的轨道。我一直在胡闹,试图把它做好,所以可能有一些无关紧要的东西你不需要完成工作,但它应该给你一个想法。希望你觉得这有帮助。如果您有任何其他问题,请告诉我。

HTML:

<aside id="nav-container">
    <div id="nav-wrapper">
        <ul class="sidebar-menu">
            <li class="active list_item">
                <a href="index.html" class="list_anchor">
                    <i class="fa fa-dashboard fontawesome_icon">
                        <span class="icon-bg orange"></span>
                    </i>
                    <span class="menu_text">Dashboard</span>
                </a>
            </li>
            <li class="list_item">
                <a href="widgets.html" class="list_anchor">
                    <i class="fa fa-th fontawesome_icon">
                        <span class="icon-bg blue"></span>
                    </i>
                    <span class="menu_text">Widgets</span>
                </a>
            </li>
            <li class="treeview list_item">
                <a href="#" class="list_anchor">
                    <i class="fa fa-bar-chart-o fontawesome_icon">
                        <span class="icon-bg green"></span>
                    </i>
                    <span class="menu_text">Charts</span>
                </a>
            </li>
        </ul>                           
    </div>
</aside>

还有 CSS:

#nav-container {
    margin-left: -47px;
}

.sidebar-menu, .treeview-menu {
    list-style-type: none;
}

.list_item {
    width: 218px;
    height: 50px;
    position: relative;
    margin: 0;
}

.list_anchor {
    width: 188px;
    height: 19px;
    padding: 15px;
}

.fontawesome_icon {
    width: 49px;
    height: 50px;
    line-height: 50px;
    text-align: center;
    margin: -15, 10, -15, -15;
    position: relative;
    display: block;
    float: left;
    border-right: 1px solid #e5e5e5;
}

.fontawesome_icon:before {
    position: relative;
    z-index: 1;
}

.fa-dashboard {
    line-height: 50px;
    width: 49px;
    text-align: center;
}

.menu_text {
    margin-top: 15px;
    position: absolute;
}

.icon-bg {
    position: absolute;
    width: 50px;
    height: 50px;
    left: -47px;
    transition: left 0.2s ease-in-out 0s;
}

li:hover > a > i .icon-bg {
    left: 0;
}

.menu_text {
    text-align: left;
    line-height: 20px;
    margin: -15, 10, -15, -15;
    list-style-position: outside;
}

.orange {
    background-color: #E2B721;
}

.blue {
    background-color: #1E23EE;
}

.green {
    background-color: #58E91B;
}

关于jquery - Bootstrap 在导航栏悬停时更改 i 类的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26851838/

相关文章:

javascript - 多个 Firebase 存储上传的延迟/ promise JS 机制

javascript - 如何更改工具提示背景颜色?

javascript - 在前一个函数完成后执行 JavaScript 函数

javascript - 图像无法在线加载,但当我尝试离线(本地)时可以正常加载,这是为什么?

javascript - 死亡矩形——Mobile Safari

JavaScript - 排序选择选项

javascript - 从文本文件填充 HTML 下拉列表

html - 图像 slider 超过 100% 宽度

html - 从图像制作梯形

html - 向卡片添加过渡