我有5个具有ID的div
<div id="1" class="div">1</div>
<div id="2" class="div">2</div>
<div id="3" class="div">3</div>
<div id="4" class="div">4</div>
<div id="5" class="div">5</div>
我需要将它们以1循环通过,因此一次只显示一个div。我试图通过以下脚本实现这一目标:
$('#1').show();
$('#2').hide();
$('#3').hide();
$('#4').hide();
$('#5').hide();
function toggleAreas() {
$("#1, #2, #3, #4, #5").toggle();
}
$(document).ready(function(){
setInterval(toggleAreas, 2000);
});
这是在两个div之间切换的好方法,但不适用于多个数字。现在我不再显示一个div并进行更改(先更改一个div,然后再更改另一个,依此类推),现在我有了一个1 div-4 div的序列。我究竟做错了什么?
$('#1').show();
$('#2').hide();
$('#3').hide();
$('#4').hide();
$('#5').hide();
function toggleAreas() {
$("#1, #2, #3, #4, #5").toggle();
}
$(document).ready(function() {
setInterval(toggleAreas, 2000);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="1" class="div">1</div>
<div id="2" class="div">2</div>
<div id="3" class="div">3</div>
<div id="4" class="div">4</div>
<div id="5" class="div">5</div>
您可以div
使用:visible
选择器选择第一个可见元素,将其隐藏,然后选择下一个同级元素并显示它:
function toggleAreas() {
var $hide = $('.toggle-areas > div:visible').hide();
if ($hide.next().length) {
$hide.next().show();
} else {
$hide.prevAll().last().show();
}
}
$('.toggle-areas > div:first').show().nextAll().hide();
function toggleAreas() {
var $hide = $('.toggle-areas > div:visible').hide();
if ($hide.next().length) {
$hide.next().show();
} else {
$hide.prevAll().last().show();
}
}
$(document).ready(function() {
setInterval(toggleAreas, 1000);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="toggle-areas">
<div>1</div>
<div>2</div>
<div>3</div>
<div>4</div>
<div>5</div>
<div>6</div>
</div>
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句