我已经阅读了论坛和教程,但是我是jQuery和JS的初学者。我想在我的页面上有多个切换器,这些切换器在div之外具有显示/隐藏内容,但我无法实现。我最接近的是拥有它们,但是它们都可以一次打开和关闭。
我正在尝试实现以下效果:如果您单击“更多内容指示器”,它将消失,并且将显示隐藏的内容,而在隐藏的内容(现在可见)的末尾将是另一个“隐藏”按钮。
请查看代码,
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
<style>
.wrapper {max-width: 1080px; margin: auto;}
.hidden0 {display: none;}
.showed0 {display: block;}
#switcher0 {background: #fff; font-size: 50px; border-style: none; margin: auto; cursor: pointer;}
.hidden1 {display: none;}
.showed1 {display: block;}
#switcher1 {background: #fff; font-size: 50px; border-style: none; margin: auto; cursor: pointer;}
#hide0 {margin: 20px auto; display: block; cursor: pointer; background: #fff; font-size: 50px; border-style: none;}
#hide1 {margin: 20px auto; display: block; cursor: pointer; background: #fff; font-size: 50px; border-style: none;}
</style>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("button").click(function(){
$("#toggler0").toggle(800);
$('#switcher0').toggleClass('showed0 hidden0');
});
});
$("#hide0").click(function(){
$("#toggler0").hide(800);
});
$(document).ready(function(){
$("button").click(function(){
$("#toggler1").toggle(800);
$('#switcher1').toggleClass('showed1 hidden1');
});
});
$("#hide1").click(function(){
$("#toggler1").hide(800);
});
</script>
</head>
<body>
<div class="wrapper">
<div class="container-fluid">
<div class="row">
<div class="col-md-8">
<img class="img-fluid" src="http://placehold.it/900x600" alt="Placeholder">
</div>
<div class="col-md-4 align-self-center">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ultricies euismod erat ut lacinia. Phasellus ipsum orci, tristique eu bibendum et, sodales eu metus.</p>
<button id="switcher0" class="showed0">+<p style="font-size: 16px;">Číst více</p></button>
</div>
</div>
</div>
<div id="toggler0" style="display: none;">
<div class="container-fluid" style="margin-top: 20px;">
<div class="row" style="padding-left: 15px; padding-right: 15px;">
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/600x600" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/600x600" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/600x600" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/600x600" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/600x600" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/600x600" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/600x600" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/600x600" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/600x600" alt="Placeholder">
</div>
<div class="col-md-4">
<img class="img-fluid" src="http://placehold.it/600x600" alt="Placeholder">
</div>
<div class="col-md-4">
<img class="img-fluid" src="http://placehold.it/600x600" alt="Placeholder">
</div>
<div class="col-md-4">
<img class="img-fluid" src="http://placehold.it/600x600" alt="Placeholder">
</div>
</div>
</div>
<button id="hide0">↑ <p style="font-size: 16px;">Skrýt</p></button>
</div>
<div class="container-fluid" style="margin-top: 30px;">
<div class="row">
<div class="col-md-4 align-self-center">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ultricies euismod erat ut lacinia. Phasellus ipsum orci, tristique eu bibendum et, sodales eu metus.</p>
<button id="switcher1" class="showed1">+<p style="font-size: 16px;">Číst více</p></button>
</div>
<div class="col-md-8">
<img class="img-fluid" src="http://placehold.it/900x600" alt="Placeholder">
</div>
</div>
</div>
<div id="toggler1" style="display: none;">
<div class="container-fluid" style="margin-top: 20px;">
<div class="row" style="padding-left: 15px; padding-right: 15px;">
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/600x600" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/600x600" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/600x600" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/600x600" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/600x600" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/600x600" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/600x600" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/600x600" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/600x600" alt="Placeholder">
</div>
<div class="col-md-4">
<img class="img-fluid" src="http://placehold.it/600x600" alt="Placeholder">
</div>
<div class="col-md-4">
<img class="img-fluid" src="http://placehold.it/600x600" alt="Placeholder">
</div>
<div class="col-md-4">
<img class="img-fluid" src="http://placehold.it/600x600" alt="Placeholder">
</div>
</div>
</div>
<button id="hide1">↑ <p style="font-size: 16px;">Skrýt</p></button>
</div>
</div><!-- Wrapper -->
</body>
</html>
谢谢大家的帮助。
答案 0 :(得分:0)
通过两次调用我固定的$("button").click(...)
,为每个按钮提供了两个处理程序。
我做了一些进一步的清理工作,以更好地了解正在发生的事情,然后将其缩小以使其更适合SO。
(此外,有很多CSS出现两次,我建议您只保留其中一半,除非您确实打算将其制作成两种不同的样式。)
$(document).ready(function() {
// Use $("#id") instead of $("button")
$("#switcher0").click(function() {
$("#toggler0").toggle(800);
$('#switcher0').toggleClass('showed0 hidden0');
});
$("#hide0").click(function() {
$("#toggler0").hide(800);
$('#switcher0').toggleClass('showed0 hidden0');
});
// Use $("#id") instead of $("button")
$("#switcher1").click(function() {
$("#toggler1").toggle(800);
$('#switcher1').toggleClass('showed1 hidden1');
});
$("#hide1").click(function() {
$("#toggler1").hide(800);
$('#switcher1').toggleClass('showed1 hidden1');
});
});
.wrapper {
max-width: 740px;
margin: auto;
}
.hidden0 {
display: none;
}
.showed0 {
display: block;
}
#switcher0 {
background: #fff;
font-size: 50px;
border-style: none;
margin: auto;
cursor: pointer;
}
.hidden1 {
display: none;
}
.showed1 {
display: block;
}
#switcher1 {
background: #fff;
font-size: 50px;
border-style: none;
margin: auto;
cursor: pointer;
}
#hide0 {
margin: 20px auto;
display: block;
cursor: pointer;
background: #fff;
font-size: 50px;
border-style: none;
}
#hide1 {
margin: 20px auto;
display: block;
cursor: pointer;
background: #fff;
font-size: 50px;
border-style: none;
}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="wrapper">
<div class="container-fluid">
<div class="row">
<div class="col-md-8">
<img class="img-fluid" src="http://placehold.it/340x260" alt="Placeholder">
</div>
<div class="col-md-4 align-self-center">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ultricies euismod erat ut lacinia. Phasellus ipsum orci, tristique eu bibendum et, sodales eu metus.</p>
<button id="switcher0" class="showed0">+<p style="font-size: 16px;">Číst více</p></button>
</div>
</div>
</div>
<div id="toggler0" style="display: none;">
<div class="container-fluid" style="margin-top: 20px;">
<div class="row" style="padding-left: 15px; padding-right: 15px;">
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/60x60" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/60x60" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/60x60" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/60x60" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/60x60" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/60x60" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/60x60" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/60x60" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/60x60" alt="Placeholder">
</div>
<div class="col-md-4">
<img class="img-fluid" src="http://placehold.it/60x60" alt="Placeholder">
</div>
<div class="col-md-4">
<img class="img-fluid" src="http://placehold.it/60x60" alt="Placeholder">
</div>
<div class="col-md-4">
<img class="img-fluid" src="http://placehold.it/60x60" alt="Placeholder">
</div>
</div>
</div>
<button id="hide0">↑ <p style="font-size: 16px;">Skrýt</p></button>
</div>
<div class="container-fluid" style="margin-top: 30px;">
<div class="row">
<div class="col-md-4 align-self-center">
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse ultricies euismod erat ut lacinia. Phasellus ipsum orci, tristique eu bibendum et, sodales eu metus.</p>
<button id="switcher1" class="showed1">+<p style="font-size: 16px;">Číst více</p></button>
</div>
<div class="col-md-8">
<img class="img-fluid" src="http://placehold.it/340x260" alt="Placeholder">
</div>
</div>
</div>
<div id="toggler1" style="display: none;">
<div class="container-fluid" style="margin-top: 20px;">
<div class="row" style="padding-left: 15px; padding-right: 15px;">
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/60x60" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/60x60" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/60x60" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/60x60" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/60x60" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/60x60" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/60x60" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/60x60" alt="Placeholder">
</div>
<div class="col-md-4">
<img style="margin-bottom: 30px;" class="img-fluid" src="http://placehold.it/60x60" alt="Placeholder">
</div>
<div class="col-md-4">
<img class="img-fluid" src="http://placehold.it/60x60" alt="Placeholder">
</div>
<div class="col-md-4">
<img class="img-fluid" src="http://placehold.it/60x60" alt="Placeholder">
</div>
<div class="col-md-4">
<img class="img-fluid" src="http://placehold.it/60x60" alt="Placeholder">
</div>
</div>
</div>
<button id="hide1">↑ <p style="font-size: 16px;">Skrýt</p></button>
</div>
</div>