我希望显示/隐藏订单的动画完美无缺,除了一个问题,表单在向下滑动时不会隐藏,其中一部分仍然可见。
HTML:
<div class="post">
<div class="post-content">
<a href="" class="order"></a>
...
</div>
<div class="order-form">
<a href="" class="close"></a>
...
</div>
</div>
jQuery的:
$(".post .order").click(function () {
$(this).fadeOut();
$(this).parents('.post-content').slideUp();
$(this).parents('.post-content').next('.order-form').show();
$(this).parents().find('.close').fadeIn();
return false;
});
$(".order-form .close").click(function () {
$(this).fadeOut();
$(this).parents('.order-form').slideDown();
$(this).parents('.order-form').prev('.post-content').slideDown(function(){
$(this).parents('.order-form').prev('.post-content').css('display', 'none');
});
$(this).parents().find('.order').fadeIn();
return false;
});
..正如你所看到的那样我试过.hide()
但是这没有按预期工作,它禁用了一个整洁的抽屉(右边的单词?)效果所需的滑动动画。
谢谢!
答案 0 :(得分:1)
我尝试这样的事情http://jsfiddle.net/2yrj6/2/
但我不知道这是不是你想要的
答案 1 :(得分:0)
我看到你在回调函数中调用了$(this).parents('.order-form').prev('.post-content').css('display', 'none');
。除此之外,$(this)
不再是关闭按钮。它是隐藏的元素。尝试在点击回调的第一行声明var $this
。然后使用$this
代替$(this)
。
其他说明:
您应该parents('.post')
代替parents()
以获得更好的效果。
您可以使用.hide()
代替.css('display', 'none')
。