2011-03-30 55 views
0

我有這樣一行:如何運行一個jQuery功能後,我加入的CSS

$('body>header:last a,body>header:last div,body>header:last h1').css("-webkit-transition", "opacity 0.5s ease-in"); 

,我想的JavaScript其餘運行之後的風格被添加。 我目前使用的定時器

setTimeout(function() { 
        $('body>header:not(:last),body>footer:not(:last),body>#content:not(:last)').remove();     
        $('body>header,body>footer,body>#content').removeAttr('style'); },1000); 

但是不知怎麼的CSS獲取計時器執行時,並添加之前不是。 任何想法爲什麼發生這種情況?如果不是有沒有辦法強制超時功能添加CSS

+0

你的意思是你希望JavaScript代碼在CSS轉換完成後執行?我不認爲這是可能的。但是,由於您已經在使用jQuery,因此您可以將其用於這些效果。它也可以在非webkit瀏覽器中使用。 – 2011-03-30 19:40:51

+0

@Felix Kling在移動設備上不流暢,所以我需要使用css3 :) – cmplieger 2011-03-30 20:12:01

+0

js代碼中的頁面佈局是什麼?是否可以發佈頁面的骨架? – locoboy 2011-03-30 21:27:58

回答

0

找到答案的傢伙!我不是一個jQuery的問題,而是一個css3技巧。

爲了做動畫,元素的不透明度必須設置爲1.在1秒延遲後發生。 我沒有undserstand 2之間的聯繫,但現在我做。所以我所做的就是改變這種:

$('body>header:last a,body>header:last div,body>header:last h1').css({'-webkit-transition': 'opacity 0.5s ease-in','opacity':'1'}); 

我簡單補充不透明度:1這是以前在0,這樣的轉變開始的CSS。

對不起,我很頭疼,謝謝:)

0

請在它自己的功能,第一代碼的運行,並給它一個回調函數

function addStyle(callback) 
{ 
    $('body>header:last a,body>header:last div,body>header:last h1').css("-webkit-transition", "opacity 0.5s ease-in"); 

    if (typeof callback !== 'undefined') callback(); 
} 

然後調用它後運行:

addStyle(function(){ 

    // Do other stuff here after css is added... 

}); 
+1

在這種情況下,只需將語句一個接一個地放置就會更容易。沒有必要使用回叫系統。 – 2011-03-30 19:43:23

+0

@Felix我該怎麼做? – cmplieger 2011-03-30 20:11:35

+0

@SnippetSpace:我只是說,在這個答案中給出的代碼具有相同的效果,一個接一個地把三個陳述。這似乎並不適用於你... – 2011-03-30 20:24:50

0

你可以在loadPage之外聲明setTimeout,然後在document.ready中調用它嗎?

+0

這是不可能的,因爲定時事件需要發生在ajax調用後,所以如果有連接錯誤,我不應該發生任何事情。順便說一句,沒有必要再考慮這個了,謝謝:) – cmplieger 2011-03-30 22:29:13

相關問題