2013-12-19 41 views
22

我創建了一個用css過渡客戶端的賀卡,但我不知道它與IE9不兼容。我需要CSS3過渡到IE9的工作

賀卡是這個http://voeux.geekarts.fr/v4.html

有沒有一種辦法讓IE9在這方面的工作?把一個jQuery或任何黑客 - 一些東西讓它在IE9中工作。

感謝

+0

檢查這個職位:http://stackoverflow.com/questions/9060223/using-css3-animations在ie9,你將不得不處理所有的動畫在JavaScript中作爲IE9的後備版 – JanR

回答

50

正如你正確識別,Internet Explorer 9的是最後的IE瀏覽器不支持transition property,或animations。這就是說,它也是最後一款支持conditional comments的IE瀏覽器,所以你可以想象將備用代碼放入僅限IE9的條件註釋中,並將其作爲您的解決方案提供給所有IE9(及以下)用戶。

<!--[if lte IE 9]> 
    <script src="animation-legacy-support.js"></script> 
<![endif]--> 

這當然只會在瀏覽器中提供Internet Explorer 9或更低版本。現在,你所要做的就是設置jQuery動畫本身。

(function() { 

    "use strict"; 

    $("img.kitten") 
     .animate({ width: 300 }, 1000) // Animate to 300px wide 
     .animate({ width: 50 }, 2000) // Then, to 50px wide 
     .animate({ opacity: .25 }, 1000); // Then, make it semi-transparent 

}()); 

每次你需要設置另一個關鍵幀,只需添加另一個調用$.fn.animate和設置你的目標狀態,以及時:例如,我們可以通過一系列的轉變是這樣運行的圖像動畫時長。

需要注意的一點是,您需要加載a version of jQuery that supports your target IE versions。 jQuery 2.x僅支持Internet Explorer 9及更高版本,但jQuery 1.x支持Internet Explorer 6及更高版本。

希望這會有所幫助!

+1

嗨,你有一個動畫,遺產支持.js鏈接? – Keensleeeeeeee

+3

這是上面代碼的建議文件名。它不存在,直到你做到:) – Sampson

3

您可以嘗試相反的方法與jQuery交通 http://ricostacruz.com/jquery.transit/

它將JQuery的風格轉換映射到CSS3過渡,並與相應的代碼(如下圖),如果CSS3過渡都沒有獲得,則可以優雅地退回到標準的JQuery。

JQuery Transit使用簡單的Javascript方法transition()來執行每個操作。語法與JQuery animate()非常相似。如果您將transition()轉換爲JQuery animate(),它將在標準JQuery中執行相同的操作(如果可用)。下面的代碼(從示例頁面所)將使用動畫()如果CSS3過渡不可用:

// Delegate .transition() calls to .animate() 
// if the browser can't do CSS transitions. 

if (!$.support.transition) 
    $.fn.transition = $.fn.animate;