当前位置:  开发笔记 > 前端 > 正文

JQuery:animate()在IE中没有按预期工作

如何解决《JQuery:animate()在IE中没有按预期工作》经验,为你挑选了1个好方法。

我对这个IE 7感到疯狂......

==> hhttp://neu.emergent-innovation.com/

为什么以下功能在IE 7中不起作用,但与Firefox完全兼容?动画功能中是否有错误?

function accordion_starting_page(){
    // hide all elements except the first one
    $('#FCE-Inhalt02-ContentWrapper .FCE-Fade:not(:first)').css("height", "0").hide();
    $('#FCE-Inhalt02-ContentWrapper .FCE-Fade:first').addClass("isVisible");

    $('div.FCE-Title').click(function(){

        // if user clicks on an already opened element => do nothing
        if (parseFloat($(this).next('.FCE-Fade').css("height")) > 0) {
            return false;
        }

        var toHide = $(this).siblings('.FCE-Fade.isVisible');

        toHide.removeClass("isVisible");

        // close all opened siblings
        toHide.animate({"height": "0", "display": "none"}, 1000);

        $(this).next('.FCE-Fade').addClass("isVisible").animate({"height" : "200"}, 1000);

        return false;
    });
}

非常感谢您的帮助...


非常感谢,这些都是很好的提示!不幸的是,它仍然不起作用......

问题是IE显示两个容器的内容,直到动画结束...... Firefox表现正常......我认为这是"溢出:隐藏"的事情 - 但这并没有改变任何东西.

我已经尝试过手风琴插件,但它的表现完全一样......



1> 小智..:

我遇到了类似animate函数的问题,并且当它显示来自核心jQuery库的错误时感到惊讶.但是jQuery很好,你需要提供它的IE.

在IE中为元素的任何属性设置动画时,您需要确保在CSS中有一个要更改的属性的起点.这也适用于Safari.

举个例子,将div连续向左移动,

JQuery的:

var re = /px/;
var currentLeft = $("#mydiv").css('left').replace(re,'') - 0;
$("#mydiv").css('left',(currentLeft-20)+'px');

CSS:

#mydiv { position: absolute;    top: 0;    left: 0; }

如果你没有放入左侧和顶部起始位置,IE最终会抛出错误.

希望这可以帮助

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有