我正在尝试使用CSS
在两个jQuery
类之间切换。正在应用新类,但好像无法删除旧样式,或者以某种方式覆盖了新样式。要么我只是删除了错误的类,或者从错误的元素中将其删除。无论如何,这是您可以用作演示的fiddle,这是我的代码:
的HTML
<nav id="as_nav">
<ul class="acTypeNav">
<li id="home_select"><a href="#Home" class="homeIcon">Home</a></li>
<li id="roll_out_select"><a href="#Roll Out">Roll Out</a></li>
<li id="construction_select"><a href="#Construction">Construction</a></li>
</ul>
</nav>
的CSS
.navHighlight {
background-image: linear-gradient(#EEE3E3 5%, #C5DDF0 45%, #B3CEE5 51%);
color: black;
}
.acTypeNav {
overflow: hidden;
padding: 0px;
margin: 0px;
white-space:nowrap;
line-height:normal;
}
.acTypeNav li {
list-style-type: none;
display: inline-block;
border-bottom: 1px solid #39f;
border-right: 1px solid #39f;
box-shadow: 1px -1px 0 rgba(255, 255, 255, 0.6) inset;
padding: 5px 55px 5px 55px;
float:left;
background-color: #f0f0f0;
background-image: linear-gradient(#FEFEFE 5%, #E4F2FC 45%, #E8F3FD 51%);
}
.acTypeNav li:hover {
background-color: #f0f0f0;
background-image: linear-gradient(#FEFEFE 5%, #E3F1FB 45%, #D2E8FB 51%);
}
a:link {
text-decoration:none;
color: #5d5d5d;
}
a:visited {
color: #39F;
}
a:hover {
color: #000000;
}
a:active {
color: #000000;
}
jQuery的
$("#roll_out_select").click(function (e) {
var myNew = 'navHighlight';
var myOld = 'acTypeNav li';
$("#roll_out_select").removeClass(myOld);
$("#roll_out_select").addClass(myNew);
console.log('removed' + ' ' + myOld + ', ' + 'added' + ' ' + myNew);
});
我的最后想法是,这一定与我在课堂上使用
background-image: linear-gradient(#FEFEFE 5%, #E4F2FC 45%, #E8F3FD 51%);
的事实有关。这种类交换方法可以轻松地用于带有普通background-color:
标记的类。这个梯度似乎让我很合适。任何帮助表示赞赏 最佳答案
您已将acTypeNav
类应用于ul
元素,但正尝试将其从li
元素中删除。
相反,您可以使用以下命令为li
元素提供默认样式和突出显示的样式
.acTypeNav li.navHighlight {
background-image: linear-gradient(#EEE3E3 5%, #C5DDF0 45%, #B3CEE5 51%);
color: black;
}
然后
$("#roll_out_select").click(function (e) {
$(this).toggleClass('navHighlight');
});
演示:Fiddle
关于jquery - 选定时更改li上的“背景图像:线性渐变”-jQuery,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20390608/