JQuery 淡出/淡入以创建排序列表
JQuery fadeout / fadein to create sorted list
我正在尝试使用JQuery创建一个排序列表。
从理论上讲,这应该非常简单,但是我有很多问题无法正常工作。
我有一个div 块的列表。至少 1 个,最多 8 个,在一行或两行中。所有div 块高 250px,宽 25%...
-------------------------------------
| div1 | div2 | div3 | div4 |
-------------------------------------
| div5 | div6 | div7 | div8 |
-------------------------------------
然后,我有链接来显示部分或全部这些块,具体取决于单击的链接。
我的计划是淡出所有 DIV,然后淡入所需的 DIV,我的代码如下......
<div id="container">
<div style="width:25% height:250px;" class="all category1">div1 content</div>
<div style="width:25% height:250px;" class="all category2">div2 content</div>
<div style="width:25% height:250px;" class="all category3">div3 content</div>
<div style="width:25% height:250px;" class="all category3">div4 content</div>
<div style="width:25% height:250px;" class="all category3">div5 content</div>
<div style="width:25% height:250px;" class="all category1">div6 content</div>
<div style="width:25% height:250px;" class="all category1">div7 content</div>
<div style="width:25% height:250px;" class="all category2">div8 content</div>
</div>
使用JQuery代码...
$('#link1').click(function(){
$(".all").fadeOut(300);
$(".category1").fadeIn(300);
});
$('#link2').click(function(){
$(".all").fadeOut(300);
$(".category2").fadeIn(300);
});
这确实"有点"工作,但它非常跳跃并且根本不平滑,DIV 块在以前的块淡出之前淡入,等等。
我尝试过排队并延迟"淡入"调用,但它并没有好多少,而且看起来不流畅或不可靠。
我知道有一些插件可以做排序列表,例如"同位素"插件,但我需要它在IE9中工作,所以它已经出来了。(如果有人知道一个适用于IE9的插件,我会很高兴的!
我只想对这些div 块做一个漂亮的简单淡出/输入排序列表,让它可靠、顺利地工作应该不会太难吗?!
如果外部容器也可以根据需要在高度上设置动画(始终为 250px 或 500px 高(,那将是一个巨大的额外奖励:o(
这是你所追求的那种东西吗?小提琴
在淡出完成后,我使用完成回调触发了 FadeIn(( 函数,但是有一个技巧可以让它正常工作,我在这里找到:相关问题特别是第二条评论:"我使用了 :visible 选择器来解决这个问题"。基本上,它是在所有可见项目消失后调用 FadeIn(( 函数。
j查询:
$('#link1').click(function(){
$(".all:visible").fadeOut(300, function() {
$(".category1").fadeIn(300);
});
});
$('#link2').click(function(){
$(".all:visible").fadeOut(300, function() {
$(".category2").fadeIn(300);
});
});
试试这个
$(function(){
$('#link1').click(function(){
$(".all").fadeOut(300);
setTimeout(function(){ $(".category1").fadeIn(300); }, 300);
});
$('#link2').click(function(){
$(".all").fadeOut(300);
setTimeout(function(){ $(".category2").fadeIn(300); }, 300);
});
});
小提琴:演示
试试这个:
$('#link1').click(function(){
$(".all:visible:eq(0)").fadeOut(300, function(){
$(".category1").fadeIn(300);
});
$(".all:gt(0)").fadeOut(300);
});
$('#link2').click(function(){
$(".all:visible:eq(0)").fadeOut(300, function(){
$(".category2").fadeIn(300);
});
$(".all:gt(0)").fadeOut(300);
});
来自 SidM ^^ 的更新小提琴
我在这个例子中使用了slideDown和slideUp。
.HTML:
<div id="container">
<div style="width:25% height:250px;" class="all category1">div1 content</div>
<div style="width:25% height:250px;" class="all category2">div2 content</div>
<div style="width:25% height:250px;" class="all category3">div3 content</div>
<div style="width:25% height:250px;" class="all category3">div4 content</div>
<div style="width:25% height:250px;" class="all category3">div5 content</div>
<div style="width:25% height:250px;" class="all category1">div6 content</div>
<div style="width:25% height:250px;" class="all category1">div7 content</div>
<div style="width:25% height:250px;" class="all category2">div8 content</div>
</div>
<a href="#" id="link1">link1</a>
<a href="#" id="link2">link2</a>
Javascript:
$(function(){
$('#link1').click(function(){
$(".all").slideUp(500);
$(".category1").slideDown(500);
});
$('#link2').click(function(){
$(".all").slideUp(500);
$(".category2").slideDown(500);
});
});
希望这对你有用。更新了小提琴链接。
- 如何在Javascript中创建排序、拖放多级列表
- 如何根据创建日期对对象进行排序,以插入Meteor的高图表
- DOM元素上动态创建的ID的排序一致性
- 如何在对象中按值创建排序索引数组
- CKEDITOR内联在动态创建的元素上(可删除/可排序)
- 如何在WinJS中为列表视图创建排序功能
- JavaScript 将文本框存储中的值引入数组中,创建新数组进行排序
- 在使用可排序排序期间/之后显示使用 JSON 创建的列表中的项目位置
- 保存动态创建的 jQuery 连接可排序列表的顺序
- JQuery 淡出/淡入以创建排序列表
- 如何创建可排序、可过滤和可编辑的 html/javascript 表
- 如何在 WinJs 中创建排序列表
- 您能否按字母顺序对从 JSON 文件动态创建的 jQuery 列表进行排序
- 如何在 SharePoint Online 中为内容搜索 Web 部件创建排序/筛选
- 如何创建多级可排序的投资组合
- JQueryUI:创建两个拖放列表的最佳方式,其中一个是可排序的,另一个在拖放时重新排序
- 为商店产品创建按高/低价目表排序
- 无法设置“”的属性;某事“;在尝试创建按日期排序的数组时出现未定义错误
- 创建指令,该指令将每个列表元素包装在引导面板中,并带有删除、重新排序…的控件…
- js是如何创建排序指示箭头的?