【问题标题】:jQuery.animate() fails in Internet ExplorerjQuery.animate() 在 Internet Explorer 中失败
【发布时间】:2012-05-26 14:42:47
【问题描述】:

如果这个问题已经在其他地方得到解答,请原谅我——我一直在疯狂地研究,但我发现的“修复”都没有对我有用。

基本上,我使用 jQuery.animate() 将 li 标签内的 div 向下移动约 150 像素。它以顶部开始:-150 并使用溢出隐藏:隐藏。在包含 li 的鼠标悬停时,它应该动画到 top:0。这一切在 Chrome 和 FF 中都非常有效,但在 IE 中,我什么也得不到。我尝试使用 IE 开发人员工具栏,并在没有任何错误的情况下进行了跟踪。似乎由于某种原因,动画函数中的“顶部”属性永远不会改变,但我不明白为什么或需要改变什么来修复它。非常感谢任何帮助。

代码如下:

/edit le final

最后只是通过使用动画的 div 的“height”属性而不是“top”来解决这个问题。再加上 padding 和 border-width 属性,我基本上可以得到相同的效果。仍然不完全确定为什么“top”属性不起作用,但是 c'est la vie。

【问题讨论】:

    标签: jquery internet-explorer jquery-animate


    【解决方案1】:

    Hiya 工作演示在 IE 8 中测试 :) http://jsfiddle.net/EbRgW/ http://jsfiddle.net/EbRgW/show/

    好读:http://api.jquery.com/jQuery.noConflict/

    var $jq = jQuery.noConflict(); 可以解决您的问题。

    这会有所帮助,

    Jquery 代码

    $(document).ready(function() { //http://api.jquery.com/jQuery.noConflict/
        var $jq = jQuery.noConflict();
        $jq('.accordion li').hover(function() {
            $jq(this).children('.accordion-textbox').stop().animate({
                top: '0px'
            }, 600);
        }, function() {
            $jq(this).children('.accordion-textbox').stop().animate({
                top: '-150px'
            }, 200);
        });
    });
    

    【讨论】:

    • 所以我尝试了你的小提琴,发现它有效。但是,在我的开发实现中,我已经使用了 noConflict。以防万一,我尝试使用您的脚本,发现它在 jsfiddle 中仍然有效,但在我的网站上无效。这是一个链接:test site。我一直在尝试完成这项工作,但似乎无法破解 IE。如果您有任何进一步的见解,我很想听听。
    • 嗨 @McCheesy 我知道你在以前的代码中缺少 $jq 尝试在你的示例中复制粘贴上面的代码这应该可以,让我知道它是怎么回事,Cheerios
    猜你喜欢
    • 2011-12-17
    • 2012-03-18
    • 1970-01-01
    • 2017-07-19
    • 1970-01-01
    • 2018-06-27
    • 2013-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多