【问题标题】:.animate() height is showing hidden elements in firefox.animate() 高度在 Firefox 中显示隐藏元素
【发布时间】:2014-02-11 23:09:20
【问题描述】:

参考:http://api.jquery.com/animate/

注意:不像 .slideDown() 和 .fadeIn(),.animate() 方法不会使隐藏元素可见 作为效果的一部分。例如,给定 $("someElement" ).hide().animate({height: "20px"}, 500),动画会运行,但是 该元素将保持隐藏状态。

小提琴:http://jsfiddle.net/86q9w/2/

if (!$('textarea').hasClass('nbrdr')) {
    $('.lbxa textarea').animate({
        height: "100px"
    }, 500);
}

正常工作(在大多数浏览器中都可以),它应该动画,同时仅在第一次单击任何跨度时显示与单击的跨度相对应的文本区域。出于某种原因,在 Firefox(据我所知的所有版本)中,此动画在设置为 display: none via css 后使所有文本区域可见。

【问题讨论】:

    标签: jquery html css cross-browser jquery-animate


    【解决方案1】:

    检查这个小提琴

    Example

    var currentIndex;
    $('span.spec').click(function() {
       var which = $(this).index();
       if(currentIndex != which){
       $('textarea').slideUp(100).eq(which).slideDown(100);
       }
       currentIndex = which;
    });
    

    【讨论】:

    • 这确实有效,但每次单击跨度时它都会动画。我已经编辑了我的问题,以指定我希望它只在第一次点击任何跨度时进行动画处理,就像我所做的那样。
    • @Kudla69 好的,很酷,很简单...我编辑了我的答案以满足您的需求
    • 您的编辑似乎没有任何不同。如果您看一下我在 chrome 中的小提琴,它会完全按照我的意愿工作。单击任何选项卡以扩展文本区域,之后不再有动画。如果我的解释有点含糊,我深表歉意。
    • 哦,所以您希望动画只发生一次?
    • 当然,没有你就做不到!这是最终结果:jsfiddle.net/86q9w/9
    猜你喜欢
    • 2012-01-24
    • 1970-01-01
    • 2016-01-29
    • 2011-03-17
    • 1970-01-01
    • 2019-09-03
    • 1970-01-01
    • 2015-01-02
    • 1970-01-01
    相关资源
    最近更新 更多