我正在锚点中显示 Twitter Bootstrap 提供的图标之一。当我将鼠标悬停在锚点上时,我希望将默认图标切换为白色图标。
当您将鼠标悬停在导航栏中的锚点上时,效果应该是这里
这是怎么做到的?
在悬停时使用 jQuery toggleClass() 将图标更改为白色。
看到这个jsfiddle。
HTML:
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css"/>
<a href="#"><div class="btn btn-primary">
<i class="glyphicon glyphicon-print"></i> Click</div></a>
<br/>
脚本:
$("document").ready(function(){
$("a").hover(function(){
$('i').toggleClass('glyphicon-envelope glyphicon-print');
});
});
您使用 CSS 伪类 :hover 来设置不同的背景:
.menulink:hover { background-image: url('alternative_sprite.png'); }
只需切换 glyphicons 图像?
(从我的 css 中提取,这是一个 sass 版本,我的图像在不同的地方,但你明白了......)
&:hover{
i{
background-image: url("../images/bootstrap/glyphicons-halflings-white.png");
}
实际上,AngularJS 网站使用 webfont 来显示图标:
font-family: 'FontAwesome';
他们使用 CSS 伪类插入字体图标:之前:
[class^="icon-"]:before, [class*=" icon-"]:before {
font-family: FontAwesome;
}
如果您决定创建自己的图标 web 字体,这是一个绝妙的解决方案。
或者更好的是,您可以使用Font-Awesome。
使用 CSS 伪类 :hover..
.menulink:hover { background-image: url('myimage.png'); }
上面的一些答案不起作用,并给出所有字形图标的背景图像。
这对我有用。请注意,我已更改图标的颜色以满足我的需要。
a:hover > [class^="icon-"] {
background-image: url("bootstrap/img/glyphicons-halflings-orange-dark.png") !important;
}
我知道已经发布了一些可以解决问题的快速解决方案。如果您想在不使用 JQuery 或 CSS 的情况下实现这一点,我想添加我的解决方案:
创建一个$scope
包含您想要默认设置的图标类名称的对象。
$scope.myClass = "glyphicon glyphicon-ok"
添加ng-class
指令并从中获取类名$scope.MyClass
,添加指令ng-mouseover
并ng-mouseleave
更改$scope.MyClass
值
<span
ng-class="myClass"
ng-mouseover="myClass = 'glyphicon glyphicon-remove'"
ng-mouseleave="myClass = 'glyphicon glyphicon-ok'">
</span>