在Brackets.io我注意到,当我突出显示他们的徽标并在其上方盘旋时,改变了我从未见过的高亮颜色。此外,如果仔细观察,您还会注意到它们的图标会同时改变颜色。这是你可以用Javascript和jQuery做的事吗?或者这可以通过CSS by itself完成吗?
会不会像......
$('#logo').hover(function(){
$(this).animate({ highlight: green }, 'slow');
});
答案 0 :(得分:4)
我在下面重新组合了他们的HTML和CSS片段:
.brackets-logo a {
color: #000;
font: 400 19px / 50px source-sans-pro, sans-serif;
text-decoration: none;
}
.brackets-logo i {
display: inline-block;
height: 15px;
width: 15px;
margin: 0 7px 0 0;
position: relative;
top: 1px;
background: url(http://brackets.io/img/sprite.svg) no-repeat 0 0;
background-size: 18px 94px;
}
.brackets-logo:hover {
-webkit-filter: hue-rotate(360deg);
filter: hue-rotate(360deg);
-webkit-transition: all 3s;
-moz-transition: all 3s;
transition: all 3s;
}
<h1 class="brackets-logo"><a href="#">
<i></i>Brackets</a></h1>
看起来他们正在使用the CSS filter
property和transition
。 filter
some decent support使用前缀(无IE)。
<强>替代强>
您还可以组合CSS animate
属性和:hover
伪类以及::selection
伪元素来设置文本选择颜色的动画。您必须使用内联svg
作为小括号图标,因此您也可以为其fill
属性设置动画。
答案 1 :(得分:2)
这可以使用css过滤器来实现。 具体来说,你提到的是色调旋转滤镜。 看看这个demo。
您可以将css写为
myelement:hover{
filter: hue-rotate(360deg);
}
或使用不同的浏览器安全
myelement:hover{
-webkit-filter: hue-rotate(360deg);
filter: hue-rotate(360deg);
-webkit-transition: all 3s;
-moz-transition: all 3s;
transition: all 3s;
}
答案 2 :(得分:1)
.logo {
color:grey;
-webkit-transition: all 1s; /* Safari */
transition: all 1s;
}
.logo:hover {
color:red;
}