6

我已经多次这样做了,没有问题,但由于某种原因,这在Here上是个问题。向下滑动将开始正常工作(1/3),然后突然猛拉并完成动画。向上滑动效果很好。奇怪的是,slideDown()、slideToggle 和 .animate() 就是这种情况,如果我还在动画函数中切换不透明度,它不会抖动,但我的文本会短暂改变颜色。

HTML:

<h2>Phthalate Free: </h2><div class="yamikowebsToggler">
    <p>
    Dibutyl Phthalate is linked to cancer and is present in nail polish, perfume, soft plastics and skin care products.
    </p></div>

CSS:我读到的其他内容是边距会导致抖动,但这无济于事

    h2{color:#76DEFC; margin:0px;}
    .yamikowebsToggler{margin:0px;}
    p{margin:0px; color;#000000;}

查询:

$(document).ready(function(){
    $(".yamikowebsToggler").fadeOut(0);
    $("h2").click(function()
    {
        $(this).next(".yamikowebsToggler").stop(true, true).animate(
        { height: 'toggle' }, 
        {
            duration: 1000,
        });
    })
});
4

4 回答 4

4

我找到了解决方案。它与我的代码无关,而是 jquery 中的一个错误。如果它是继承的,jquery 很难获得高度,因为当它获得高度时,元素被隐藏了。当元素被隐藏时,它们会被处理为 css 属性

position: absolute;
visibility: hidden;

要解决此问题,您需要在任一动画中指定高度,这在我的情况下是不可行的,因为我有很多已切换。另一种方法是设置元素的高度。我个人在我的 jQuery 中添加了一条关于它的注释,并按照简单的添加方式完成了所有操作

style="height: <height in px>;"

到被切换的元素。

于 2011-03-21T03:46:30.343 回答
1

在将分割从 100% 降低到 0% 宽度时,我遇到了类似的问题。

发生的事情是,在动画开始时,由于某种原因,该部门变得更广泛,达到了 110%。

无论如何,我发现解决方案是max-width: 100%;在特定分区上添加 CSS 样式。

只是想我会在这里发布,因为我来这里寻找解决这个问题的方法。:)

于 2012-05-18T11:59:25.800 回答
0

我知道这被标记为答案,但想提供有关此问题的更新。

对应的问题单在这里: http ://bugs.jquery.com/ticket/4541

然而,它已被核心开发人员关闭,并且似乎除非有没有性能缺陷的补丁,否则它不会被修复。

同时,如果您仍然希望使用 jQuery 来执行此操作,您可以设置要尝试上滑或下滑的元素的高度或宽度。它不必是“像素”单位,也可以是百分比。

于 2011-10-05T06:14:45.333 回答
0

你试过增加你的{duration: ...}吗?此外,您可以只使用内置的 jQuery 函数.slideToggle()

于 2011-03-20T02:42:08.237 回答