首先,有许多类似于我的问题,但我还没有找到一个我能够使用的答案。我有一个页面,当您输入时显示登录表单。我还有一个我想隐藏的注册表。点击一下,我想用注册表单替换登录表单。
我已经尝试过这个代码,我找到了这个代码可以使用,它有一个很好的平滑过渡,但它从一开始就显示了这两个元素。
$(function() {
$('a').click(function() {
div = $(this).attr('href'); //grab #one, #two which correspond to the div id we're targeting
paragraph = $(div); //store each div in a variable for later use
$('#two').hide();
$('div').hide('grey-bg'); //remove any greyed backgrounds
$(paragraph).show('grey-bg'); //add grey background to clicked element
});
});
a {
text-decoration: none;
}
#one {
margin: 10px;
padding: 20px;
border: 1px solid #000;
}
#two {
margin: 10px;
padding: 20px;
border: 1px solid #000;
}
.grey-bg {
background-color: #cccccc;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#one">First Link</a><br />
<a href="#two">Second Link</a>
<div id="one">
This is the first paragraph.
</div>
<div id="two">
This is the second paragraph.
</div>
您可以在此处看到它:https://codepen.io/raazxplorer/pen/rVKzNp
我所做的就是将removeClass和toggleClass改为hide / show。
答案 0 :(得分:2)
在display:none;
#two
#two {
margin: 10px;
padding: 20px;
border: 1px solid #000;
display:none;
}
$(function() {
$('a').click(function() {
div = $(this).attr('href'); //grab #one, #two which correspond to the div id we're targeting
paragraph = $(div); //store each div in a variable for later use
$('#two').hide();
$('div').hide('grey-bg'); //remove any greyed backgrounds
$(paragraph).show('grey-bg'); //add grey background to clicked element
});
});
a {
text-decoration: none;
}
#one {
margin: 10px;
padding: 20px;
border: 1px solid #000;
}
#two {
margin: 10px;
padding: 20px;
border: 1px solid #000;
display:none;
}
.grey-bg {
background-color: #cccccc;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<a href="#one">First Link</a><br />
<a href="#two">Second Link</a>
<div id="one">
This is the first paragraph.
</div>
<div id="two">
This is the second paragraph.
</div>
答案 1 :(得分:0)
只需在页面加载中隐藏其中一个div
。
您需要的是:
$(document).ready(function(){
$("#two").hide();
});
Read more about (document).ready()
我创建了JSFiddle,我没有将(document).ready()
部分放在其中,因为它在JSFiddle中没有必要。
但如果您愿意,可以将其添加到$("#two").hide();
之上。它也会工作。