显示一组<李>s,然后隐藏它们以显示另一个集合数<李>s
Show a set number of <li>s and then hide them to reveal another set number of <li>s
我正在尝试使用浮动列表项创建一个转盘。
按下Next时,当前4个可见的li
s将被隐藏,下一个4将根据需要显示多次。不过,可能并不总是有另外4个要显示,因为在下面的情况下,只有2个要显示。
按下Prev时,当前4个可见的li
s将被隐藏,前4个将显示。
它不需要循环,也就是说,如果按下Next足够多次,它就会到达终点,它不会从头开始。
http://jsfiddle.net/tw16/5NB6G/
HTML:
<div id="left">Prev</div>
<ul>
<li>Test 1</li>
<li>Test 2</li>
<li>Test 3</li>
<li>Test 4</li>
<li>Test 5</li>
<li>Test 6</li>
</ul>
<div id="right">Next</div>
jQuery/JavaScript:
var listLength = $('ul li').length;
var listCounter = 0;
$("#right").click(function() {
if (listCounter == listLength - 1) {
$("ul li").show(400);
listCounter = 0;
}
else {
$('ul li').eq(listCounter).hide(400);
listCounter++;
}
});
不幸的是,我还没能使代码适应上面的要求。
没有理由重新发明轮子。查看jCarousel。
我做了一些实验,得出了以下结果:
var total = $('ul li').length;
var start = 0;
var count = 4;
update = function() {
for (var i = 0; i < total; i++) {
el = $("ul li").eq(i);
if (i >= start && i < start + count)
el.show(400);
else
el.hide(400);
}
}
$("#right").click(function() {
start += count;
if (start >= total)
start = 0;
update();
});
$("#left").click(function() {
start -= count;
if (start < 0)
start = Math.floor(total / count) * count;
update();
});
请参阅http://jsfiddle.net/5NB6G/43/现场演示。
编辑:我刚刚注意到您不需要在结尾/开头处换行。您可以将以下内容与上面定义的update
功能结合使用:
$("#right").click(function() {
start += count;
if (start >= total)
start -= count;
update();
});
$("#left").click(function() {
start -= count;
start = start < 0 ? 0 : start;
update();
});
相关文章:
- 使用Javascript,如何显示<tr>在另一<tr>悬停时,隐藏第二个<tr>
- 检索MongoDB binData并显示为<img>src
- 如何将代码显示为<代码>
- 高亮显示包含<br>以及重新格式化网格
- 显示“<script src='some.js'></脚本>"在Html文档中
- 使用动态<选择>以显示<输入类型=“;文本>
- 如何使角度显示为空<p>标签
- json数组显示在<李>使用angular js
- 如何隐藏/显示<面板>使用jquery
- Jquery手风琴html表显示了一个<tbody>内容
- 正在更改显示的<李>单击另一个对象
- "显示更多“<h: 命令按钮>使用ajax
- this.value在<td>标记显示未定义
- 如何在单击按钮时显示文本(按钮被<span></span>标记包围)
- <img>标签未显示图像
- <ul>显示内联块不起作用
- 动态生成<选择>未显示已排序列表中的第一个项目
- 如何显示<iframe>s作为a帧中的纹理
- 为什么“<br>"显示而不是引起中断
- IE & lt;显示“未找到成员”