Можно ли изменить между двумя значками шрифта на панели управления?

У меня есть якорный тег со шрифтом-удивительным значком, следующим образом

<a href="#" class="lock"><i class="icon-unlock"></i></a>

Можно ли изменить значок на зависание на другой значок?

мой CSS

.lock:hover{color:red}

Помимо значка, краснеющего, я также хотел бы изменить значок на следующий

<i class="icon-lock"></i>

Возможно ли это без помощи JavaScript? Или мне нужен Javascript/Jquery для зависания?

Спасибо.

Ответы

Ответ 1

Вы можете переключаться, какой из них отображается при наведении:

<Суб > HTML:суб >
<a href="#" class="lock">
    <i class="icon-unlock"></i>
    <i class="icon-lock"></i>
</a>
<Суб > CSSсуб >
.lock:hover .icon-unlock,
.lock .icon-lock {
    display: none;
}
.lock:hover .icon-lock {
    display: inline;
}

Или вы можете изменить content класса icon-unlock:

.lock:hover .icon-unlock:before {
    content: "\f023";
}

Ответ 2

В моих шаблонах я часто использую FontAwesome, и я придумал этот трюк CSS

* > .fa.fa-hover-show,
*:hover > .fa.fa-hover-hidden {
    display: none;
}
*:hover > .fa.fa-hover-show {
    display: inline-block;
}

тогда, если мне нужно иметь другой значок при наведении, я просто добавлю оба значка, по умолчанию у него будет также класс ".fa-hover-hidden", другой - ".fa-hover-show",.

Ответ 3

Если вы используете SCSS, вы можете просто сделать это. Гораздо легче, чем любой из решений JS и легче в DOM.

.icon-unlock:hover {
  @extend .icon-lock;
}

Ответ 4

Простой способ открыть файл css шрифта awesome и изменить код значка при наведении...

например, ниже приведен код значка блокировки

content: "\f023";

а ниже приведен код для разблокировки значка в css, который вы можете установить под: hover

.icon-unlock:before {
  content: "\f09c";
}

Ответ 5

В jquery это будет просто:

$(document).ready(function () {
        $('.icon-unlock').hover(function () {
            $(this).addClass('icon-lock');
            $(this).removeClass('icon-unlock'); 
        }, function () {
            $(this).addClass('icon-unlock');
            $(this).removeClass('icon-lock');
        });


    });

Вот рабочий jsfiddle этого.

Если вы используете jquery ui, вы можете использовать .switchClass.

Примером этого может быть:

$(document).ready(function() {
   $(".icon-unlock").switchClass("icon-unlock", "icon-lock");
});

Api on.switchClass() находится здесь