2010-10-08 41 views
0

這可能嗎?我嘗試了可見性:hidden/visibility:visible和display:none/display:block來切換類,但都導致元素在結尾處彈出。使用jQuery的switchClass方法淡入一個元素?

+0

您是否嘗試過'.fadeIn()'和'.fadeOut()'? – 2010-10-08 18:21:45

+0

我想同時做其他事情,除了淡入淡出。鏈接時,Switchclass似乎不會在fadeIn \ fadeOut中播放。 – Joren 2010-10-08 18:23:04

+0

fadeIn和fadeOut是你想要的。請看下面的答案。 – 2010-10-08 18:26:27

回答

0

看這裏就如何落實JQuery Fading

http://api.jquery.com/category/effects/fading/

您可以處理其他事件的淡入和淡出使用回撥功能是這樣的:

$('.someClass').fadeIn('slow', function() { 
    // run extra code here 
    }); 

    $('.someClass').fadeOut('slow', function() { 
    // run extra code here 
    }); 
+0

這是完成時的回調。如果我想從左邊滑動50條到左邊100條,而使用switchClass漸漸消失,該怎麼辦? – Joren 2010-10-08 18:39:57

+0

嵌套兩個元素,如DIV,並分別開始幻燈片和淡入淡出,每個元素之一:http://old.nabble.com/combine-slide-and-fade-td21937832s27240.html – thomaspaulb 2010-10-08 18:45:11

0

使用.animate()

$("#myElement").animate({ opacity: 1, left: 0 }, 1000); 

要得到.switchClass()工作,你將不得不編輯jQuery代碼。找到function getElementStyles()。在elseif (typeof style[key] === 'string') {後添加以下代碼:

if (key == "filter" && /^alpha\(opacity=(\d+)\)$/.test(style[key])) { 
    newStyle.opacity = parseFloat(RegExp.$1)/100; 
} 

應該這樣做。

+0

是的,我知道我可以使用動畫。我想知道的是,如果switchClass可以做alpha更改。我喜歡switchClass,因爲它可以讓你的動畫保存在一個css文件和代碼中。 – Joren 2010-10-08 21:06:27

+1

然後沒有。 '.switchClass()'僅對數字值進行操作。因爲在IE8及以下版本中,opacity不是數值(即'parseInt()'返回'NaN'),所以在動畫期間忽略這個值。 – gilly3 2010-10-09 00:13:23

+0

有沒有什麼辦法來重寫getElementStyles方法,而不是改變原來的jQuery代碼? – Joren 2010-10-11 21:02:25

1

設計兩個類別的樣式時,請使用opacity屬性。 .swithClass將能夠在不同的不透明度之間平穩過渡。

例子:

.FadeFrom { 
     opacity: 0.0; 
    } 

    .FadeTo { 
     opacity: 1.0; 
    } 
相關問題