javascript - 如何使用jQuery向上滑动隐藏和显示div?
问题描述
我目前正在做一个需要制作网站的学校项目。对于这个网站,我希望第一个 div 向上滑动并隐藏,然后第二个 div 向上滑动并显示。我花了几个小时在网上寻找,但要么找不到有效的解决方案,要么找不到只能部分有效的解决方案。
这是我目前拥有的代码:
$(document).ready(function() {
$("#next1").click(function() {
$("#1").slideUp("slow", function() {
$("#2").slideDown("slow");
});
});
});
$(document).ready(function() {
$("#next2").click(function() {
$("#2").slideUp("slow", function() {
$("#1").slideDown("slow");
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.0/css/bootstrap.min.css" rel="stylesheet" />
<link href="http://getbootstrap.com.vn/examples/equal-height-columns/equal-height-columns.css" rel="stylesheet" />
<body>
<div class="jumbotron">
<h1 style="text-align:center">Project Pie</h1>
</div>
<div id="1">
<div class="row row-eq-height">
<div class="col-md-1" style="background-color:hotpink; border: none;">
<p>Lorem, ipsum dolor.</p>
</div>
<div class="col-md-10" style="background-color:white; border: none">
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Corporis, est.</p>
<br>
<p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Alias, error?</p>
<br>
<div class="form-group">
<label>Number People:</label>
<input type="number">
</div>
<br>
<p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Officiis, corporis?</p>
<br>
<p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Id, itaque?</p>
<br>
<div class="form-group">
<label>Number layers:</label>
<select>
<option>1</option>
<option>2</option>
<option>3</option>
</select>
</div>
</div>
<div class="col-md-1" style="background-color:hotpink; border: none">
<p>Lorem, ipsum dolor.</p>
</div>
</div>
<button id="next1">next</button>
</div>
<div id="2" style="display:none;">
<div class="row row-eq-height">
<div class="col-md-1" style="background-color:gold; border: none">
<p>Lorem, ipsum dolor.</p>
</div>
<div class="col-md-10" style="background-color:white; border:none">
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Corporis, est.</p>
<br>
<p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Alias, error?</p>
<br>
<div class="form-group">
<label>Number People:</label>
<input type="number">
</div>
<br>
<p>Lorem ipsum, dolor sit amet consectetur adipisicing elit. Officiis, corporis?</p>
<br>
<p>Lorem ipsum dolor sit, amet consectetur adipisicing elit. Id, itaque?</p>
<br>
<div class="form-group">
<label>Number Layers:</label>
<select>
<option>1</option>
<option>2</option>
<option>3</option>
</select>
</div>
</div>
<div class="col-md-1" style="background-color:gold; border: none;">
<p>Lorem, ipsum dolor.</p>
</div>
</div>
<button id="next2">next</button>
</div>
</body>
我希望有人可以帮助我找到可行的解决方案。
解决方案
我想我明白了,这段代码应该可以解决问题:
function slideUp(elementId) {
var div = $(elementId);
var height = div.css({
display: "block"
}).height();
div.css({
overflow: "hidden",
marginTop: height,
height: 0
}).animate({
marginTop: 0,
height: height
}, 500, function() {
$(this).css({
display: "",
overflow: "",
height: "",
marginTop: ""
});
});
};
$(document).ready(function() {
$("#next1").click(function() {
$("#1").slideUp("slow", function() {
slideUp("#2");
});
});
});
$(document).ready(function() {
$("#next2").click(function() {
$("#2").slideUp("slow", function() {
slideUp("#1");
});
});
});
推荐阅读
- laravel - 将 TCPDF 附加到 Laravel 中的邮件
- android - 片段 Onclick 监听器
- firebase - Flutter Firestore 排序问题
- macos - 显示通知时需要得到输出
- lilypond - 碰撞分辨率:同时显示清晰自然的音符
- c# - 如何使用 System.Net.Http 修补数据
- python - Kivy 中的 Askopenfilename 替代方案
- react-native - 如何在 React-Native 中使用 event.value
- javascript - 将特定数据发送到ajax
- amazon-web-services - 何时值得在 DynamoDB 中使用本地二级索引进行权衡?