很抱歉标题缠绕,但很难用一行来解释。
这是我正在尝试做的:
- 单击列表"项目 2"时,我将蓝色加号图标的图像更改为黄色加号图标,反之亦然。 (完成( 单击加号图标
- 将使标题/巨型部分动画化,同时将加号图标更改为减号图标(完成(
- 但是,当我单击列表"item 2"时,它将蓝色图标更改为黄色,然后单击该图标以动画标题/巨型屏幕,黄色图标变回蓝色图标。我希望黄色图标在单击"项目 2"时保持黄色,而蓝色图标在单击"项目 1"时保持蓝色。
//ANIMATE UP/DOWN ON CLICK OF ICON
$(document).ready(function(){
$(".topBarInner").click( function(event){
event.preventDefault();
if ($(this).hasClass("clicked")) {
$("#contentContainer").stop().animate({marginTop:"0px"}, 200);
$(".jumbotron, .headerRow").show(200);
$(".topBarInner").css("background-image", "url(http://www.ericnguyen23.com/images/host/arrow-up.png)");
}else {
$("#contentContainer").stop().animate({marginTop:"160px"}, 200);
$(".jumbotron, .headerRow").hide(200);
$(".topBarInner").css("background-image", "url(http://www.ericnguyen23.com/images/host/arrow-down.png)");
}
$(this).toggleClass("clicked");
return false;
});
});
//CHANGE ICON & BACKGROUND COLOR
function changeColor1() {
$('.jumbotron').css('background-color','#6aabcb');
$('.topBar').css('background-color','#bdd2f1');
$('.topBarInner').css('background-image','url(http://www.ericnguyen23.com/images/host/arrow-up.png)');
}
function changeColor2() {
$('.jumbotron').css('background-color','#e4b028');
$('.topBar').css('background-color','#ffce4e');
$('.topBarInner').css('background-image','url(http://www.ericnguyen23.com/images/host/arrow-up-yellow.png)');
}
.headerRow{
padding:52px 0;
position: relative;
}
.jumbotron {
margin-top:-10px;
padding:175px 0 0px 0;
background-color:#6aabcb;
color: white;
position:relative;
}
.topBar{
height:11px;
width:98%;
background-color:#bdd2f1;
position:absolute;
bottom:85px;
}
.topBarInner{
background-image: url(http://www.ericnguyen23.com/images/host/arrow-up.png);
background-repeat: no-repeat;
background-size:contain;
height:28px;
width:28px;
margin:0 auto;
}
.clicked{
background-image: url(http://www.ericnguyen23.com/images/host/arrow-down.png);
}
<link href="http://www.ericnguyen23.com/images/host/bootstrap.min.css" rel="stylesheet"/>
<div class="container">
<div class="row headerRow">
<a href="#"><img src="http://www.ericnguyen23.com/images/host/logo.jpg"/></a>
</div>
</div>
<div class="jumbotron"></div>
<div id="contentContainer">
<div class="row">
<div class="col-xs-12">
<div class="topBar"><div class="topBarInner"></div></div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<ul>
<li><a href="#" data-toggle="tab" onclick="changeColor1()">Item 1</a></li>
<li><a href="#" onclick="changeColor2()">Item 2</a></li>
</ul>
</div>
</div>
</div><!--/container-->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
这是一个快速修复!important
css 中的关键字,并使用类更新 dom,而不是更改所选类的样式。!important
关键字不是一个好的做法,但这是我迄今为止发现的唯一修复它的方法。我明天再看看,看看能不能帮上忙。此外,我已经将jQuery的链接从<body
底部移到了<head
部分,因为所有库都应该在那里。我已按照建议将本地 JavaScript 脚本放在body
的底部。以下是完整代码:
<!DOCTYPE HTML>
<html lang="en">
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" type="text/css" href="styles2.css">
<link href="http://www.ericnguyen23.com/images/host/bootstrap.min.css" rel="stylesheet"/>
<link rel="icon" href="./bilder/icon.ico">
<title>Kletterwelt - Home</title>
</head>
<body>
<div class="container">
<div class="row headerRow">
<a href="#"><img src="http://www.ericnguyen23.com/images/host/logo.jpg"/></a>
</div>
</div>
<div class="jumbotron"></div>
<div id="contentContainer">
<div class="row">
<div class="col-xs-12">
<div class="topBar"><div class="topBarInner"></div></div>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<ul>
<li><a href="#" data-toggle="tab" onclick="changeColor1()">Item 1</a></li>
<li><a href="#" onclick="changeColor2()">Item 2</a></li>
</ul>
</div>
</div>
</div><!--/container-->
<script src="scripts2.js"></script>
</body>
</html>
CSS 中的其他类:
.jumbotron-colored {
background-color: #e4b028 !important;
}
.topBar-colored {
background-color: #ffce4e !important;
}
.topBarInner-colored {
background-image: url(http://www.ericnguyen23.com/images/host/arrow-up-yellow.png) !important;
}
JS文件更改中的changeColor()
函数:
function changeColor1() {
$('.jumbotron').removeClass('jumbotron-colored');
$('.topBar').removeClass('topBar-colored');
$('.topBarInner').removeClass('topBarInner-colored');
}
function changeColor2() {
$('.jumbotron').addClass('jumbotron-colored');
$('.topBar').addClass('topBar-colored');
$('.topBarInner').addClass('topBarInner-colored');
}