在slideDown()动画结束时删除跳转/ jutter

时间:2012-01-08 23:35:21

标签: jquery slidedown

首先,我知道关于同一主题的另一篇文章,但对此的答案对我不起作用......

我正在为我的网站创建一个服务面板:http://jagdogweb.com/,最后它在每个窗格的左下方都有可见的混蛋......

请帮助......

http://jagdogweb.com/#services

2 个答案:

答案 0 :(得分:1)

您可以使用CSS解决此问题:

BODY {
 overflow-y: scroll;
}

跳转正在发生,因为滚动条正在消失,具体取决于页面高度。此CSS规则将确保始终为滚动条显示像素。

答案 1 :(得分:0)

问题是当slideDown的元素被隐藏和/或有填充时。要解决此问题,请确保不被隐藏,以便jQuery可以轻松计算动画的高度。为此,请使用

将元素包装在父DIV中

height:0;overflow:hidden;

这样你想要滑动的元素是隐藏的,而不是隐藏的CSS,它的高度仍然是100%,可以用于slideDown中的jQuery动画。您可以将父元素(其高度为0)设置为子项的完整高度,而不是slideDown。

像这样:

   $('.slideToggler').on('click', function() {
        var n = $(this).next();
        var h = n.find('.slidePanel:nth-child(1)').height();
        if(n.height() > 0) {
            n.animate({height:0});
        } else {
            n.animate({height:(h+padding)});
        }
    });