题
如果一个物品被删除,则我想褪色出来并滑动其它元件向上以填充空的空间。现在,当我使用fadeOut()
的项目不具有在导致其他项目跳跃起来(而不是很好地向上滑动)的端部的高度。
如何slideUp()
和元件fadeOut()
后正确?
解决方案
jQuery.fn.fadeThenSlideToggle = function(speed, easing, callback) {
if (this.is(":hidden")) {
return this.slideDown(speed, easing).fadeTo(speed, 1, easing, callback);
} else {
return this.fadeTo(speed, 0, easing).slideUp(speed, easing, callback);
}
};
我测试JQuery的1.3.2,以及它的工作。
编辑:这是我称为它从代码。 #滑动然后褪色是按钮元件的ID,物品文本是div标签的类:
$(document).ready(function() {
$('#slide-then-fade').click(function() {
$('.article-text').fadeThenSlideToggle();
});
});
修改2:修改为使用内置的效果基本show
修改3:改写为肘,以及使用fadeTo
其他提示
听起来像这将是更好地使用了jQuery fadeTo 命令
$(function() {
$("#myButton").click(function() {
$("#myDiv").fadeTo("slow", 0.00, function(){ //fade
$(this).slideUp("slow", function() { //slide up
$(this).remove(); //then remove from the DOM
});
});
});
});
通过在前述命令的回调函数执行每个命令,该命令将不运行,直到前一个完成;当元件从DOM移除,而不等待效果基本show完成一个“跳跃”发生。
$("#id").fadeIn(500, function () {
$("#id2").slideUp(500).delay(800).fadeOut(400);
});
尝试$('.row').animate({ height: 'toggle', opacity: 'toggle' }, 'slow').slideUp();
在淡出功能需要一个回调函数的第二个可选的参数,所以你应该能够做这样的事:
$('elementAbove').fadeOut(500, function() {
$('elementBelow').slideUp();
});
编辑:忘到淡出的速度添加作为第一个参数
不隶属于 StackOverflow