2011-01-10 57 views
1

我有這樣的代碼:jQuery.animate()和動畫()回調在IE7中不工作

var items = jQuery('#main .imgteaser .txtwrap'); 

items.css("opacity","0.8"); 

items.mouseenter(function(){ 
    alert('enter'); 
    jQuery(this).animate({ 
    bottom: "0", 
    opacity: 1, 
    border: "1px solid #a6a6a6" 
    }, 500, function(){alert('enter animation ready');}); 
    jQuery(this).addClass('hover'); 
}); 

items.mouseleave(function(){ 
    alert('leave'); 
    jQuery(this).animate({ 
    bottom: "-60", 
    opacity: 0.8, 
    border: "1px solid #fff" 
    }, 500, function(){alert('leave animation ready');}); 
    jQuery(this).removeClass('hover'); 
}); 

在Firefox它的作品不錯,但在IE7休假jQuery的動畫不工作,回調函數不起作用。

+0

這是實際的碼? (*複製/粘貼* *)如果是這樣,請確保您註釋掉`console.log` ..此外,如果您可以在線(*或顯示HTML以及*),這將有很大幫助。 – 2011-01-10 10:17:01

+0

我已將console.log更改爲警報。 – 2011-01-10 10:19:06

+0

您在** leave **函數(* callback *)中的警報之後缺少一個右括號`}`。 – 2011-01-10 10:28:37

回答

1

jQuery的只是失敗進行動畫IE中的邊界:http://bugs.jquery.com/ticket/5001

我曾經發現插件,動畫背景顏色,但現在找不到任何插件「修復「邊界動畫。

的方法之一左右,是把內側的1px填充佔位符的元素,然後動畫使用這個插件,整個佔位符的背景:http://plugins.jquery.com/project/color

有了這個插件,只需要調用.animate()像往常一樣通過新的背景顏色。

1

檢查在動畫數組的最後一個條目後沒有,! FF可以處理這個,IE不行。

$('#clickme').click(function() { 
    $('#book').animate({ 
    opacity: 0.25, 
    left: '+=50', 
    height: 'toggle' 
    }, 5000, function() { 
    alert('finished!!!'); 
    } //      <-- NO COMMA HERE!!! 
); 
}); 
1
items.mouseenter(function(){ 
    alert('enter'); 
    jQuery(this).animate({ 
    bottom: "0", 
    opacity: 1, 
    border: "1px solid #a6a6a6" 
    }, 500, function(){alert('enter animation ready');); //<-- you are missing the closing bracket here 
    jQuery(this).addClass('hover'); 
}); 

修正:

items.mouseenter(function(){ 
    alert('enter'); 
    jQuery(this).animate({ 
    bottom: "0", 
    opacity: 1, 
    border: "1px solid #a6a6a6" 
    }, 500, function(){alert('enter animation ready');}); 
    jQuery(this).addClass('hover'); 
});